Python Academy · Урок

Counter

Легко подсчитывайте элементы

Урок 1 из 413 шагов

«Counter» — бесплатный урок Python Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Что такое счётчик

Counter — это подкласс словаря из модуля collections, предназначенный для подсчёта. Вы передаёте ему элементы, и он подсчитывает, сколько раз встречается каждый из них.

Импортируйте его с помощью from collections import Counter.

from collections import Counter
c = Counter(['a', 'b', 'a', 'c', 'a'])
print(c)

Подсчёт символов

Передайте любой итерируемый объект, включая строку, и Counter подсчитает каждый элемент. В строках символы подсчитываются по одному.

from collections import Counter
c = Counter('mississippi')
print(c)

Получение количества

Получайте количество так же, как значение по ключу словаря. Для отсутствующего ключа возвращается 0, а не вызывается исключение KeyError. Это удобное отличие от обычного словаря.

from collections import Counter
c = Counter('banana')
print(c['a'])
print(c['z'])

Самые частые элементы

.most_common(n) возвращает n самых частых элементов в виде пар (элемент, количество), отсортированных от самых частых к самым редким.

from collections import Counter
words = ['red', 'blue', 'red', 'green', 'blue', 'red']
c = Counter(words)
print(c.most_common(2))

Все элементы по частоте

Вызовите .most_common() без аргумента, чтобы получить все элементы, упорядоченные по частоте.

from collections import Counter
c = Counter('aabbbcccc')
print(c.most_common())

Обновление количеств

Метод .update() добавляет количества из другого итерируемого объекта, а не заменяет их, как это сделал бы обычный словарь.

from collections import Counter
c = Counter(['a', 'b'])
c.update(['a', 'a', 'c'])
print(c)

Подсчёт из словаря

Можно также создать Counter напрямую из соответствия элементов их количествам или с помощью именованных аргументов.

from collections import Counter
c = Counter(apples=3, pears=2)
print(c)
print(c['apples'])

Сложение двух счётчиков

Оператор + объединяет два счётчика, складывая значения совпадающих ключей. Элементы с нулевой или отрицательной итоговой суммой удаляются.

from collections import Counter
a = Counter(x=2, y=1)
b = Counter(x=1, z=4)
print(a + b)

Вычитание количеств

Оператор - вычитает количества и сохраняет только положительные результаты. Используйте .subtract(), если нужно сохранить отрицательные значения.

from collections import Counter
a = Counter(x=5, y=2)
b = Counter(x=3, y=4)
print(a - b)

Сумма всех количеств

Сложите все количества с помощью sum(c.values()). Так Вы узнаете общее число подсчитанных элементов.

from collections import Counter
c = Counter('mississippi')
print('Total letters:', sum(c.values()))

Перечисление элементов

.elements() возвращает итератор, который повторяет каждый элемент столько раз, каково его количество. Оберните его в list(), чтобы увидеть их все.

from collections import Counter
c = Counter(a=2, b=1, c=3)
print(sorted(c.elements()))

Быстрая проверка

Дан c = Counter('hello'). Что возвращает c['x']?

Повторение: счётчик

Вы узнали, что Counter:

  • подсчитывает элементы из любого итерируемого объекта, включая строки;
  • возвращает 0 для отсутствующих ключей, вместо того чтобы вызывать ошибку;
  • предоставляет .most_common(n) для ранжирования элементов по частоте;
  • поддерживает +, -, .update() и .elements() для работы с подсчётами.
from collections import Counter
votes = ['yes', 'no', 'yes', 'yes', 'no']
print(Counter(votes).most_common(1))
Можно начать бесплатно

Изучай Python с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
76
Уроки
320

Часто задаваемые вопросы

Урок «Counter» бесплатный?

Да — полный текст урока «Counter» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Counter»?

Легко подсчитывайте элементы Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Counter»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Counter
  2. defaultdict
  3. deque
  4. namedtuple и OrderedDict
← Назад к Python Academy