2017-08-03 15 views
-4

私は 'fwd'の最初の列のint値を新しいdict 'fragment_dict'に転送しようとしていますが、この型エラーはコードを実行したときに表示されました: "'int'オブジェクトは添字付きではありません。私は何が問題なのだろうか。int値をdictに転送する。 TypeError: 'int'オブジェクトはサブスクリプトできませんか?

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

このコードはまったく意味がありません。 'fwd'はdictです。決して整数ではありません。それがあったとしても、 'fwd == int'はオブジェクトがintであることをチェックする方法ではありません(isinstance(fwd、int)を意味します)。 「パスする」エリフは全く無意味です。実際のエラーはdictを反復処理するとキーが得られるので、 'i'がキーです。 –

+0

完全なエラーメッセージ、特に 'fwd [fragment_dic] = i [0]'の行を表示するビットを含めると、エラーメッセージが表示されます。 'int'なので' i'の添字にすることはできません。それは 'fwd'の鍵の一つなので、あなたが期待しているものです。 – Duncan

+0

エラーにスタックトレースが含まれていましたか?問題がどの行にあるのかを教えてくれましたか? – khelwood

答えて

0

完全なエラーは、次のとおり

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

だからいずれかfwddict)またはi(そのdictのキー)intあります。 fwdのキーは実際にはintです。そのため、エラーが発生します。

+0

簡潔な説明のために@Duncanに感謝します。 –

+0

@ KangSanKim Duncanの答えを受け入れることによって解決されるお願いします。 – Zcode

関連する問題