对元组内的元素进行排序(获得最高)

时间:2013-09-21 18:40:25

标签: python sorting tuples

假设我有以下元组(python):

scores = {'player1':200,'player2':300,'player3':150}

我有一个元组而不是元组列表的原因是我可以很容易地更新分数,即

scores['player1'] += 50

我怎样才能得到得分最高的球员? 或者根据他们的分数对球员进行排序:

[player2, player1, player3]

感谢。

1 个答案:

答案 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