2014-12-06 30 views
0

我想對平均值進行排序,但它似乎只是按名稱排序。我的代碼如下。請讓我知道是否有什麼明顯的我做錯了。歡呼聲:字典種類平均不起作用

#printing averages highest to lowest 
player_averages = {name: sum(scores)/len(scores) for name, scores in player_stats.items()} 
print("---------------------------------------------------------") 
print("Player averages") 
print("---------------------------------------------------------") 
for name in sorted(player_averages): 
print("Sorted Average scores--------->>> ", name, player_averages[name]); 

回答

0

默認情況下,它將按鍵排序。你應該使用關鍵參數來定義你的排序。例如:

>>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}.items(), key=lambda x: x[1]) 

[(5, 'A'), (2, 'B'), (3, 'B'), (1, 'D'), (4, 'E')] 
>>> 

.items()給你的元組(鍵,你的字典元素的值)的數組。然後在您的lambda您返回x[1]這將是價值,例如D in (1,'D')

你的情況做:

sorted(player_averages.items(), key=lambda x: x[1]) 
+0

歡呼。非常感謝,非常感謝。請你可以指引我使用資源,以便我更多地瞭解如何使用列表,包含所有可以完成的添加和排序的字典。我發現有點奇怪,但沒有全面的學習。乾杯。 – 2014-12-06 17:34:58

+0

這是一個資源:https://wiki.python.org/moin/HowTo/Sorting/ – user3885927 2014-12-06 17:54:39