2016-07-15 12 views
-1

Ich habe andere Möglichkeiten gesehen, 1 zu einem Wert in einem Wörterbuch hinzuzufügen. Ich bekomme einfach immer einen Fehler, wenn ich versuche, einen Wert von 1 zu einem Wörterbuchschlüsselwert in Python hinzuzufügen.Hinzufügen von 1 zum Wert im Wörterbuch

Hier ist mein Code:

arr = {('1', '20'): [0], ('15', '14'): [0]} 

I 1 bis Schlüssel hinzufügen möchten ('1', '20').

Hier ist mein Code:

w = 1 
x = 20 
arr[(w, x)] += 1 

ich den Fehlercode erhalten:

TypeError: 'int' object is not iterable 

Ich weiß einfach nicht, was ich falsch mache. Irgendwelche Vorschläge werden sehr geschätzt.

Antwort

3

Zwei Fragen:

  1. Die Tasten Ihres Wörterbuchs sind Tupel von Strings, aber Sie versuchen, in das Wörterbuch zu indizieren ein Tupel von Ints verwendet wird.
  2. Die Werte in Ihrem Wörterbuch sind (eine Länge) Listen von Ints, aber Sie versuchen, eine Nummer zu einer dieser Listen hinzuzufügen.

Sie könnte etwa so wollen:

w = '1' 
x = '20' 
arr[(w, x)][0] += 1 

Ohne mehr des Codes zu sehen, könnte es sein, dass Sie so etwas mehr wollen:

# dictionary mapping tuples of ints to ints 
arr = { (1, 20): 0, (15, 14): 0 } 

# now we can just use ints  
w = 1 
x = 20 
# and no need to use [0] to get the first element of the list 
# (because it's no longer a list) 
arr[(w, x)] += 1