Counter
Легко подсчитывайте элементы
«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 — локальная установка не требуется.