我试图对价值平均值进行排序,但似乎只是按名称排序。我的代码如下。如果有任何明显的错误,请告诉我。干杯:
#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 :(得分: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])