2017-08-03 3 views
-4

Ich versuche, int Werte in der ersten Spalte von 'fwd' in ein neues dict 'Fragment_dict' zu übertragen, aber dieser Typ Fehler erschien, als ich meinen Code ausgeführt: '' int 'Objekt ist nicht einklagbar ". Ich frage mich, was das Problem ist.Übertragung von int-Werten in dict; TypeError: 'int' -Objekt ist nicht einfügbar?

fwd = {1:1, 2:10, 3:100, 5:10000, 103: 103, 204:204, 205:205, 387:387} 


fragment_dic = {} 
count = 0 

for fragment_num in range(0, 388, 1): 
    for pos in range(1,101, 1): 
     if fwd == int: 
      print() 
      genomic_position = fragment_num*100 + pos 
      count += fwd[genomic_position] 
     elif fwd != int: 
      pass 
     fragment_dic[fragment_num] = count 
     count = 0 
     for i in fwd:  
      fwd[fragment_dic] = i[0] 
+3

Keiner dieser Code macht überhaupt keinen Sinn. 'fwd' ist ein Diktat, es wird niemals eine ganze Zahl sein; selbst wenn es war, ist 'fwd == int 'nicht der Weg, um zu überprüfen, ob ein Objekt ein int ist (du meinst' isinstance (fwd, int) '); ein Elif, der einfach "passiert", ist völlig sinnlos; und der eigentliche Fehler ist, weil das Durchlaufen eines Diktats Ihnen die Schlüssel gibt, also ist "i" der Schlüssel. –

+0

Es hilft, wenn Sie die volle Fehlermeldung, insbesondere das Bit, wo es zeigt Ihnen die Zeile 'fwd [fragment_dic] = i [0]' was bedeutet, alles, was wir tun müssen, ist auf den Fehler schauen, um zu sehen, es beschweren sich Sie können "i" nicht subskribieren, weil es ein "int" ist. Was Sie erwarten würden, da es einer der Schlüssel von 'fwd' ist. – Duncan

+0

Ist Ihr Fehler mit einem Stack-Trace aufgetreten? Das hat dir gesagt, in welcher Zeile das Problem lag? – khelwood

Antwort

0

Der vollständige Fehler ist:

Traceback (most recent call last): 
    File "/tmp/t.py", line 18, in <module> 
    fwd[fragment_dic] = i[0] 
TypeError: 'int' object is not subscriptable 

Also entweder fwd (a dict) oder i (ein Schlüssel des dict) ist ein int. Die Schlüssel von fwd sind in der Tat int, deshalb erhalten Sie den Fehler.

+0

Danke @Duncan für die kurzen Erklärungen! –

+0

@KangSanKim Markiere die Frage als gelöst, indem du Duncans Antwort akzeptierst Bitte. – Zcode

Verwandte Themen