2016-11-11 6 views
-1

このコードを使用してPython 3.5でエラーが発生しました。エラーはdict value object does not support indexingです。Python 3.5:Dict値オブジェクトはインデックス作成をサポートしていません

#Find frequency of appearance for each value of the list 
counter=collections.Counter(myList) 
#Get frequencies' list 
unique_freq = counter.values() 
#Get unique items' list 
unique_items=counter.keys() 

probs= [(0,0)]*len(unique_items) 

#Initialization of probs list 
for i in range (0 , len(unique_items)): 
     probs[i]=(unique_items[i],np.float32(unique_freq[i])) 
+0

あなたのコードは私のために問題なく動作しますが、私はちょうどユニークなアイテムと同じサイズの2つのアレイを使用しましたと周波数。配列の型()を確認してください。 編集:さらに、索引付けの代わりにprobs = []を実行してからpros.append((a、b))を実行できます。 –

+1

あなたは完全な例外のコピーを気にすることはできませんし、名前にどのような型が縛られているか教えてもらえませんか? –

+0

@ MaxUppenkamp私は私の質問を編集しました。 – zinon

答えて

4

リストに.values()および.keys()結果をキャストする必要があります。

unique_freq = list(counter.values()) 

しかし、あなたは何をしたいのかやってのより良い、ニシキヘビの方法は、アイテムで辞書を反復される():

result = [] 

for key, value in your_dict.items(): 
    result.append((key,value)) 
1

両方dict.keysdict.valuesリターンドン」セットのようなオブジェクトインデックス作成をサポートします。インデックスするためには

それらあなたが通常list、それをサポートするオブジェクトにそれらを変更する必要があります。

#Get frequencies' list 
unique_freq = list(counter.values()) 
#Get unique items' list 
unique_items=list(counter.keys()) 
関連する問題