2

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

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

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

scores['player1'] += 50

如何获得得分最高的球员?或按分数对玩家进行排序:

[player2, player1, player3]

谢谢。

4

1 回答 1

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
于 2013-09-21T18:48:56.333 回答