Шаг 119.
Python: тонкости программирования. Общие структуры данных Python. Множества и мультимножества. collections.Counter - мультимножества

    На этом шаге мы рассмотрим особенности этого класса.

    Класс 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

    На следующем шаге мы подитожим изученный материал.




Предыдущий шаг Содержание Следующий шаг