2016-05-12 15 views
-3

Mein Programm:Python Wörterbuch-Funktion get() return None

best = {0: 0, '24': 3, '9': 1, '11': 1} 
for i in best: 
     print best.get(str(best)) 

Alle ideasy, warum es immer noch keine Rückkehr. Ich gebe den Schlüssel, um arg zu bekommen, also sollte alles gut funktionieren.

+4

1. "Beste" ist das Wörterbuch, nicht der Schlüssel. 2. Warum verwenden Sie ".get"? 3. Und warum "str" ​​benutzen ?! Verwenden Sie einfach 'best [i]' oder iterieren Sie stattdessen über 'best.values ​​()'. – jonrsharpe

Antwort

1

Sie bekommen immer str(best), was kein Schlüssel in Ihrem Wörterbuch ist. Es sollte wie dieser Stelle aussehen:

best = {0: 0, '24': 3, '9': 1, '11': 1} 
for i in best: 
    print best.get(str(i)) 

jedoch seit i ist immer ein Schlüssel in best können Sie einfach best[i] verwenden:

for i in best: 
    print best[i] 

Beachten Sie, dass, wenn alles, was Sie die Wörterbuchwerte wollen, können Sie verwenden best.values():

for value in best.values(): 
    print value 

Wenn Sie sowohl die Schlüssel und die wollen Wert, den Sie verwenden können .items():

for key, value in best.items(): 
    print key, value 
+1

Nicht alle Schlüssel sind Zeichenketten, daher verursacht das Aufrufen von 'str (i)' Mismatches. Rufen Sie einfach 'best [i]' – ozgur

+0

@ozgur Ja, das ist wahrscheinlich, warum OP '' .get() 'anstelle von' [] 'verwendet. Ich gehe davon aus, dass dies ein einfaches Codebeispiel ist und ihr tatsächlicher Anwendungsfall komplizierter ist. Oder vielleicht wollen sie verstehen, wie '.get()' funktioniert. – bfontaine

Verwandte Themen