2016-12-01 2 views
0

nicht herausfinden ich einige Code versucht zu schreiben, aber wenn ich es lief, kehrte er den Fehler „Typeerror:‚int‘Objekt ist nicht subscriptable“:Typeerror: ‚int‘ Objekt ist nicht subscriptable Kann diese

Diese ist die Codezeile:

if data[key][0] == b[0] and data[key][1] == b[1]: 

‚data‘ ist ein Wörterbuch mit ‚Schlüssel‘

der Schlüssel ist und wobei der Wert ‚0‘ (vor dem ‚und‘)

ich muss nur wissen, warum das passiert und wie kann es behoben werden. Thanks :)

Beispiel Code

data = { 
'a' : ['1','1'], 
'b' : ['1','2'], 
'c' : ['1','3'], 
'd' : ['1','4'], 
'e' : ['1','5'], 
'f' : ['2','1'], 
'g' : ['2','2'], 
'h' : ['2','3'], 
'i' : ['2','4'], 
'j' : ['2','4'], 
'k' : ['2','5'], 
'l' : ['3','1'], 
'm' : ['3','2'], 
'n' : ['3','3'], 
'o' : ['3','4'], 
'p' : ['3','5'], 
'q' : ['4','1'], 
'r' : ['4','2'], 
's' : ['4','3'], 
't' : ['4','4'], 
'u' : ['4','5'], 
'v' : ['5','1'], 
'w' : ['5','2'], 
'x' : ['5','3'], 
'y' : ['5','4'], 
'z' : ['5','5'] 
} 


total = '21333534313511424214' 
count = 0 
b = [] 
finalOuput = [] 
for number in total: 
    if count == 2: 
     for number in b: 
      for key in data: 
       if data[key][0] == b[0] and data[key][1] == b[1]: 
        finalOutput.append(b[0]) 
        finalOutput.append(b[1]) 
        count = 0 
        b = 0 
        total.replace(number,'') 
       else: 
        continue 
    else: 
     b.append(number) 
     count += 1 
     continue 
+0

Sie wahrscheinlich bei den Werten von 'data [ 'key']' und 'b' in welcher Debugger Sie – mgilson

+0

Entweder verwenden ... aussehen sollte 'Daten [key ] 'ist eine ganze Zahl, oder" b "ist eine ganze Zahl. –

+0

_und '0' ist der Wert_ Ich denke, Sie könnten verwirrt sein. 'x [0]' bedeutet, dass x eine Sequenz ist (z. B. eine Liste oder ein Tupel) und Sie nach dem ersten Wert in dieser Sequenz fragen. 0 zeigt keinen Literalwert an ... –

Antwort

0

Sie neu definiert haben b von einem list zu int daher kann es nicht indiziert werden.

Relevante Auszug aus dem Code:

if data[key][0] == b[0] and data[key][1] == b[1]: 
    finalOuput.append(b[0]) 
    finalOutput.append(b[1]) 
    count = 0 

    ## b has been redefined as 0 hence `b[0]` causes error ## 
    b = 0  

    total.replace(number,'') 
else: 
    continue 
Verwandte Themen