假设的 '玩家报告' 是在一个列表:
values = ['Player 1: 3','Player 2: 4','Player 3: 3','Player 4: 5']
values.sort(key=lambda s: [(-int(b),a) for a,b in (s.split(':'),)])
print values
结果
['Player 4: 5', 'Player 2: 4', 'Player 1: 3', 'Player 3: 3']
=============
Bob Loin说他想获得
Player 4: 5, Player 2: 4, Player 1: 3, Player 3: 3
丹尼尔的罗斯曼工作得很好或不依赖于处理的列表。
我的解决方案给出了正确的结果。看到第二个列表
values = ['Player 1: 3','Player 2: 4','Player 3: 3','Player 4: 5']
print ' ',values
print
print 'Dan',sorted(values, key=lambda s: s.split(': ')[1], reverse=True)
print 'eyq',sorted(values, key=lambda s: [(-int(b),a)
for a,b in (s.split(':'),)])
print '\n===================================\n'
values = ['Player 3: 3','Player 2: 4','Player 1: 3','Player 4: 5']
print ' ',values
print
print 'Dan',sorted(values, key=lambda s: s.split(':')[1], reverse=True)
print 'eyq',sorted(values, key=lambda s: [(-int(b),a)
for a,b in (s.split(': '),)])
结果
['Player 1: 3', 'Player 2: 4', 'Player 3: 3', 'Player 4: 5']
Dan ['Player 4: 5', 'Player 2: 4', 'Player 1: 3', 'Player 3: 3']
eyq ['Player 4: 5', 'Player 2: 4', 'Player 1: 3', 'Player 3: 3']
===================================
['Player 3: 3', 'Player 2: 4', 'Player 1: 3', 'Player 4: 5']
Dan ['Player 4: 5', 'Player 2: 4', 'Player 3: 3', 'Player 1: 3']
eyq ['Player 4: 5', 'Player 2: 4', 'Player 1: 3', 'Player 3: 3']
你需要告诉我们你尝试过什么,并在那里你失败的区别。 – user225312 2011-04-10 18:21:48
你可以在它们变成一个字符串之前对它们进行排序,即。当你有分数和玩家ID分开时? – 2011-04-10 18:21:57
这些玩家在你的代码中是如何表现的? – Cameron 2011-04-10 18:22:02