【问题标题】:Sorting elements within a tuple (getting the highest) [duplicate]对元组中的元素进行排序(获得最高)[重复]
【发布时间】:2013-09-21 18:40:24
【问题描述】:

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

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

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

scores['player1'] += 50

我怎样才能得到得分最高的球员? 或按分数对玩家进行排序:

[player2, player1, player3]

谢谢。

【问题讨论】:

  • 这是一个字典,而不是一个元组。
  • 如果只需要max,它就不是重复的。在这种情况下,分拣是一种浪费。

标签: python sorting tuples


【解决方案1】:

您可能想查看内置的sorted 函数:http://docs.python.org/2/library/functions.html#sorted

排序的(iterable[, cmp[, key[, reverse]]])

你可以指定字典的item为key,并设置reverse为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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2014-07-17
    • 2012-03-11
    相关资源
    最近更新 更多