2014-12-06 49 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