假设我有以下元组(python):
scores = {'player1':200,'player2':300,'player3':150}
我有一个元组而不是元组列表的原因是我可以很容易地更新分数,即
scores['player1'] += 50
我怎样才能得到得分最高的球员? 或者根据他们的分数对球员进行排序:
[player2, player1, player3]
感谢。
答案 0 :(得分:1)
您可能希望查看内置的sorted
函数:http://docs.python.org/2/library/functions.html#sorted
已排序(可迭代[,cmp [,键[,反向]]])
您可以将字典项指定为键,并将其设置为True
,以便您可以按降序获得分数列表。
>>> scores = {'player1':200,'player2':300,'player3':150}
>>> max_score = sorted(scores, key=scores.__getitem__, reverse=True)[0]
>>> max_score
'player2'
作为旁注,scores.__getitem__(i)
与scores[i]
大致相同。
>>> scores.__getitem__('player1')
200
>>> scores['player1']
200