245 votes

Python: Utiliser un dictionnaire pour compter les éléments d'une liste

Je suis nouveau sur Python et j'ai une question simple, disons que j'ai une liste d'éléments:

['pomme', 'rouge', 'pomme', 'rouge', 'rouge', 'poire']

Quelle est la façon la plus simple d’ajouter les éléments de la liste à un dictionnaire et de compter le nombre de fois que cet élément apparaît dans la liste.

Donc, pour la liste ci-dessus, j'aimerais que le résultat soit:

{'pomme': 2, 'rouge': 3, 'poire': 1}

305voto

mmmdreg Points 1103

J'aime:

 counts = dict()
for i in items:
  counts[i] = counts.get(i, 0) + 1
 

.get vous permet de spécifier une valeur par défaut si la clé n'existe pas.

62voto

bernie Points 44206
>>> L = ['apple','red','apple','red','red','pear']
>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> for i in L:
...   d[i] += 1
>>> d
defaultdict(<type 'int'>, {'pear': 1, 'apple': 2, 'red': 3})

7voto

riviera Points 153

Que dis-tu de ça:

 src = [ 'one', 'two', 'three', 'two', 'three', 'three' ]
result_dict = dict( [ (i, src.count(i)) for i in set(src) ] )
 

Cela se traduit par

{'un': 1, 'trois': 3, 'deux': 2}

4voto

Nick T Points 5466
 L = ['apple','red','apple','red','red','pear']
d = {}
[d.__setitem__(item,1+d.get(item,0)) for item in L]
print d 
 

Donne {'pear': 1, 'apple': 2, 'red': 3}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X