collections.Counter
Счётчик — тип-отображение для упрощения подсчёта количества объектов.
collections.Counter([iterable-or-mapping])
Данный тип, являясь потомком словаря, предоставляет инструменты для подсчёта количества хешируемых объектов.
В этой коллекции сущности хранятся в виде ключей, а их количество — в виде значений.
Количество может обозначаться любым целым, включая нуль и отрицательные.
Подсчёт может производиться для элементов объекта, поддерживающего итерирование, либо другого отображения.
Для счётчиков также доступны операции:
_
На заметку
Тип может напомнить вам
bag
в Smalltalk или multiset
в C++.В этой коллекции сущности хранятся в виде ключей, а их количество — в виде значений.
Количество может обозначаться любым целым, включая нуль и отрицательные.
Подсчёт может производиться для элементов объекта, поддерживающего итерирование, либо другого отображения.
from collections import Counter
mycounter = Counter()
mycounter.items()
# dict_items([])
mycounter = Counter({'one': 1, 'many': 10})
mycounter.items()
# dict_items([('one', 1), ('many', 10)])
mycounter = Counter('abca')
mycounter.items()
# dict_items([('a', 2), ('b', 1), ('c', 1)])
mycounter = Counter(['a', 'b', 'c', 'a'])
mycounter.items()
# dict_items([('a', 2), ('b', 1), ('c', 1)])
# дополнение счётчика
mycounter['a'] += 1
mycounter.items()
# dict_items([('a', 3), ('b', 1), ('c', 1)])
# все повторения элементов с ненулевым положительным количеством
list(mycounter.elements())
# ['a', 'a', 'a', 'b', 'c']
# самые встречаемые 2 элемента
mycounter.most_common(2)
# [('a', 3), ('b', 1)]
# вычитание из счётчика
mycounter.subtract({'a': 1})
mycounter.items()
# dict_items([('a', 2), ('b', 1), ('c', 1)])
# удаление элемента
del mycounter['b']
mycounter.items()
# dict_items([('a', 2), ('c', 1)])
Для счётчиков также доступны операции:
+ | сложение |
- | вычитание (с сохранением только положительных значений) |
& | пересечение (min(counter1[x], counter2[x]) ) |
| | объединение (max(counter1[x], counter2[x]) ) |
На заметку
Счётчики были спроектированы в основном для работы с положительными целыми. Однако это не означает, что нельзя в качестве значения поместить объект иного типа.
_
Синонимы поиска: collections.Counter, collections, Counter, bag, multiset, счетчик
В разделе «collections»:
collections.OrderedDict
На заметку
Зарегистрированные пользователи могут добавлять Видео.