Quel est le meilleur moyen d’établir la somme de tous les comptes dans un objet collections.Counter
?
J'ai essayé:
sum(Counter([1,2,3,4,5,1,2,1,6]))
mais cela donne 21 au lieu de 9 ?
Le code que vous avez additionne les clés (c’est-à-dire les valeurs uniques dans la liste: 1+2+3+4+5+6=21
).
Pour additionner les comptes, utilisez:
In [4]: sum(Counter([1,2,3,4,5,1,2,1,6]).values())
Out[4]: 9
Cet idiome est mentionné dans documentation , sous "Pattern patterns".
Somme les valeurs:
sum(some_counter.values())
Démo:
>>> from collections import Counter
>>> c = Counter([1,2,3,4,5,1,2,1,6])
>>> sum(c.values())
9
sum(Counter([1,2,3,4,5,1,2,1,6]).values())
Vous pouvez aussi utiliser:
len(Counter([1,2,3,4,5,1,2,1,6]).elements())