Additionner le contenu de deux collections.Objets Counter () [dupliquer]

Cette question a déjà une réponse ici:

Je travaille avec des compteurs collections.Counter(). Je voudrais combiner deux d'entre eux d'une manière significative.

Supposons que j'ai 2 compteurs, disons,

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

Et

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

Je le suis essayer de finir avec:

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

Comment puis-je faire cela?

30
demandé sur Mark Amery 2013-10-14 12:19:46

1 réponses

Tout ce que vous devez faire est de les ajouter:

>>> 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})

À partir des documents :

Plusieurs opérations mathématiques sont prévues pour combiner des objets de compteur pour produire des multisets (compteurs dont le nombre est supérieur à zéro). Addition et soustraction combinez les compteurs en additionnant ou en soustrayant le nombre d'éléments correspondants.

45
répondu TerryA 2013-10-14 08:20:38