2015-11-30 50 views
-4

字典我試圖整理我的字典:我怎麼排序包含實數的Python

def averagefunc(): 
    global new_d 
    avgDict = {} 
    for k,v in new_d.items(): 
     avgDict[k] = sum(v)/ float(len(v)) 
    avgValue =sorted(avgDict.items(), key=lambda x: (x[1], x[0])) 
    print (avgValue) 
    print ("----------") 

雖然它不排序,它只是打印出無序的字典。

new_d存儲一個字典:包含一個名稱,然後每個名字3分。

{'Tom': [4,5,8] ,'Bill': [2,5,7], 'Fred' :[6,8,3]} 
+1

錯誤是否告訴你錯誤發生在哪一行? –

+1

'sum(v)'在做什麼? –

+0

「new_d」序列中的所有值都是? – martineau

回答

1

我怎麼排序的字典

你不知道。字典沒有秩序感。

好像你在期待new_d的值是數字列表,但其中至少有一個不是。

UPDATE

我想你更新的代碼,它的工作對我來說:

print avgValue 
>> [('Bill', 4.666666666666667), ('Fred', 5.666666666666667), ('Tom', 5.666666666666667)] 

有序元組的列表,第一個元素是名稱,第二個元素是平均水平。

+0

對不起,我的意思是一個簡單的 – TMSpencer

+0

你編輯了你的問題,但仍然沒有提供什麼'new_d'確實存儲的信息。 – DeepSpace

+0

我現在提供了一個解釋 – TMSpencer