Python 排序元组

Python 排序元组,python,sorting,tuples,Python,Sorting,Tuples,我的Blender python代码中有一个元组列表 scores=[(1489,"Sean"), (2850,"Bob"), (276,"Crap Player"), (78495, "Great Player"), (8473, "Damian"), (4860, "Andy"), (0, "Stephen")] 我试着用这个来按分数对他们进行排序 sorted(scores, key=lambda score: score[0], reverse=True) 但这是行不通的。我不知道为

我的Blender python代码中有一个元组列表

scores=[(1489,"Sean"), (2850,"Bob"), (276,"Crap Player"), (78495, "Great Player"), (8473, "Damian"), (4860, "Andy"), (0, "Stephen")]
我试着用这个来按分数对他们进行排序

sorted(scores, key=lambda score: score[0], reverse=True)
但这是行不通的。我不知道为什么。有什么建议吗

我考虑过一个更好的实现方法是创建一个新的
Score
类,其中包含
name
Score

编辑:

谢谢你们的快速回复

排序方法没有给我任何错误,但没有排序。 我使用了
sort()

我觉得python在Blender里可能有点奇怪

谢谢

只要做:

print sorted(scores, reverse=True)
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]

如果您想就地排序,可以使用
scores.sort(reverse=True)
,顺便说一句,在元组列表中,排序函数默认按第一项、第二项排序。

sorted()
返回排序序列。如果您想对列表进行适当排序,请使用
list.sort()

您的代码运行良好:它以什么方式不起作用?您可能没有将排序的结果分配给变量,但您需要的实际上是sortI认为标题有误导性。当我看到它时,我想OP会想知道如何排序一个元组,而不是一个元组列表。这也会按字母顺序对分数相同的玩家进行排序,这可能是可取的。@RobertHensing有没有办法让
排序
不按第二个键排序(即玩家名称)?文档说,
sorted
保证是稳定的,因此当被比较的1个键相等时,它应该保持原始顺序,但事实并非如此。在这种情况下,您实际上必须显式地使用
key
函数。例如:
sorted(scores,reverse=True,key=lambda s:s[0])
我有三个参数来对2个字符串和数值进行排序-我应该怎么做,编写一个函数,生成某种排序的串联字符串,然后比较这些字符串????
scores.sort(reverse=True)
>>> print scores
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]