web-dev-qa-db-fra.com

Additionner le contenu de deux collections.Objets Counter ()

Je travaille avec des compteurs collections.Counter(). Je voudrais combiner deux d'entre eux de 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})

J'essaie de me retrouver avec:

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

Comment puis-je faire ceci?

47
Matt O'Brien

Il vous suffit 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})

De la docs :

Plusieurs opérations mathématiques sont fournies pour combiner des objets Compteur pour produire des ensembles multiples (compteurs dont le nombre est supérieur à zéro). L'addition et la soustraction combinent des compteurs en ajoutant ou en soustrayant les comptes des éléments correspondants.

65
TerryA