2016-11-11 58 views
-1

我在使用此代碼的python 3.5中出現錯誤。錯誤是dict value object does not support indexingPython 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

你的代碼工作沒有問題對我來說,我只是用的同樣大小的唯一項目兩個數組和頻率。你應該檢查你的數組是什麼類型()。 編輯:此外,你可以只做probs = [],然後pros.append((a,b))而不是索引。 –

+1

您無法複製完整的異常,也不會告訴我們名稱綁定了哪些類型? –

+0

@MaxUppenkamp我編輯了我的問題。 – zinon

回答

4

您需要將.values()和.keys()結果強制轉換爲列表。

unique_freq = list(counter.values()) 

但這樣做你想要做的是迭代的項目)的字典(什麼更好的,Python的方式:

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())