2017-07-19 7 views
0

Ich habe eine Liste mit 0, 1 und 2, Ich möchte ein Diktat mit der Zählung von jedem erstellen. Dies ist mein Code,Zählen der Anzahl der Vorkommen in Python

count_map = {} 
for i in my_list: 
    if i in count_map: 
    count_map[i] += 1 
    else: 
    count_map[i] = 1 

Meine Frage ist, wie kann ich diesen Code mehr pythonically schreiben.

+5

'collections.Counter (my_list)' –

+1

hat jemand in der Lage gewesen, zu entscheiden, ob Fragen wie diese sollten durch eine Antwort oder einen Kommentar zu beantworten ? Ich kämpfe immer noch –

+0

Warum der Downvote? –

Antwort

6

können Sie collections.Counter verwenden, das zu tun für Sie:

from collections import Counter 
count_map = Counter(my_list) 

können Sie werfen es mithilfe dict(Counter(my_list))

1

-dictionary geben Sie einen dict cmprh Verwendung:

l=[1,1,1,2,1,2,5,4,2,5,1,4,5,2] 
{i:l.count(i) for i in set(l)} 

Ausgang:

{1: 5, 2: 4, 4: 2, 5: 3} 
2

I-Wert in Ihrem Wörterbuch in einer Zeile auf diese Weise erhöhen würde:

count_map = {} 
for i in my_list: 
    count_map[i] = count_map.get(i,0) + 1 
Verwandte Themen