排序元组Python

2024-04-28 08:34:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我的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类,其中包含字段namescore

编辑:

谢谢你们的快速回复

它没有给我错误的sorted方法,但没有排序。 我用的是sort(),它起作用了。

我觉得Python在搅拌机里有点怪吧?

谢谢!


Tags: 代码列表排序bob元组scoreplayersorted
3条回答
scores.sort(reverse=True)
>>> print scores
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]

sorted()返回排序的序列。如果要对列表进行就地排序,请使用list.sort()

只要做:

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),如果是元组列表,则可以使用sort函数,默认情况下,按第一项、第二项排序。。

相关问题 更多 >