2016-06-03 12 views
0

hey ich habe diesen Python-Code geschrieben.einige Ausnahmefehler

str="abc def abc def abc def abc" 
str=str.split(" ") 
dict={0:'word'} 
count=0 
temp_list=[] 
temp_list1=[] 
for i in str: 
    dict[str.count(i)]=i 

for key,values in dict.items(): 
    print(key,values) 

o/p: 0 Wort 3 def 4 abc

, die in Ordnung ist, aber wenn ich versuche, diese Zeichenfolge zu geben,

str="abc def abc def" 
str=str.split(" ") 
dict={0:'word'} 
count=0 
temp_list=[] 
temp_list1=[] 
for i in str: 
    dict[str.count(i)]=i 

for key,values in dict.items(): 
    print(key,values) 

o/p: 0 Wort 2 def

wobei 2 abc-Wert am Ausgang fehlt.

+0

Schattieren Sie keine wichtigen Schlüsselwörter wie 'str' und' dict', indem Sie Variablen mit demselben Namen erstellen. –

+0

Änderung; {0: 'word'}> {'word': 0}, dann def 3 abc 4 .. Mit Ihrer Methode wird der Schlüssel 2 durch das letzte Vorkommen von 2 ersetzt – Merlin

Antwort

2

Wörterbücher dürfen keine doppelten Schlüssel haben. {2: "def", 2: "abc"} ist unmöglich Ausgabe. Wenn Sie versuchen, ein Histogramm zu erstellen, sollten Sie auf {"def": 2, "abc": 2} zielen. Es sieht so aus, als hätten Sie Schlüssel und Werte vermischt.

Versuchen Sie, collections.Counter zu verwenden.

Verwandte Themen