На этом шаге мы рассмотрим особенности этого класса.
Класс collections.Counter стандартной библиотеки Python реализует тип "мультимножество" (или "мешок"), который допускает неоднократное появление элемента в множестве.
См. документацию Python "collections.Counter": https://docs.python.org/3/library/collections.html#counter-objects.
Это бывает полезно, если вам нужно вести учет не только того, принадлежит ли элемент множеству, но и того, сколько раз он был включен в множество:
>>> from collections import Counter >>> inventory = Counter() >>> loot = {'клинок': 1, 'хлеб': 3} >>> inventory.update(loot) >>> inventory Counter({'хлеб': 3, 'клинок': 1}) >>> more_loot = {'клинок': 1, 'яблоко': 1} >>> inventory.update(more_loot) >>> inventory Counter({'хлеб': 3, 'клинок': 2, 'яблоко': 1})
Приведем одно предостережение относительно класса Counter: следует соблюдать осторожность во время подсчета количества элементов в объекте Counter. В результате вызова функции len() возвращается количество уникальных элементов в мультимножестве, тогда как общее количество элементов может быть получено с использованием функции sum:
# Количество уникальных элементов >>> len(inventory) 3 # Общее количество элементов >>> sum(inventory.values()) 6
На следующем шаге мы подитожим изученный материал.