Подтвердить что ты не робот

Суммирование содержимого двух коллекций. Объекты Counter()

Я работаю с счетчиками collections.Counter(). Я хотел бы объединить два из них в значимой манере.

Предположим, что у меня есть 2 счетчика, скажем,

Counter({'menu': 20, 'good': 15, 'happy': 10, 'bar': 5})

и

Counter({'menu': 1, 'good': 1, 'bar': 3})

Я пытаюсь в итоге:

Counter({'menu': 21, 'good': 16, 'happy': 10,'bar': 8})

Как я могу это сделать?

4b9b3361

Ответ 1

Все, что вам нужно сделать, это добавить их:

>>> from collections import Counter
>>> a = Counter({'menu': 20, 'good': 15, 'happy': 10, 'bar': 5})
>>> b = Counter({'menu': 1, 'good': 1, 'bar': 3})
>>> a + b
Counter({'menu': 21, 'good': 16, 'happy': 10, 'bar': 8})

Из docs:

Предусмотрено несколько математических операций для объединения объектов Counter для создания мультимножеств (счетчики с числом больше нуля). Сложение и вычитание объединяют счетчики путем добавления или вычитания счетчиков соответствующих элементов.