字典排序平均不起作用

时间:2014-12-06 17:14:09

标签: python-3.x

我试图对价值平均值进行排序,但似乎只是按名称排序。我的代码如下。如果有任何明显的错误,请告诉我。干杯:

#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]);

1 个答案:

答案 0 :(得分:0)

默认情况下,它会对键进行排序。您应该使用key参数来定义排序。例如:

>>> 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中的(1,'D')

在你的情况下做:

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