我的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)
但这是行不通的。我不知道为什么。有什么建议吗?
我考虑过一个更好的实现方式,那就是使用字段name
和score
创建一个新的Score
类
编辑:
感谢你们的快速回复
它没有给我提供sorted
方法的错误,但没有排序。我使用了sort()
,它可以工作。
我认为python在Blender中可能有点奇怪?
谢谢!
发布于 2011-06-16 20:57:21
只需这样做:
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)
,顺便说一下,在元组列表的情况下,默认情况下按第一项、第二项排序。
发布于 2011-06-16 20:58:25
sorted()
返回排序后的序列。如果你想在原地对列表进行排序,那么使用list.sort()
。
发布于 2013-12-02 17:22:54
scores.sort(reverse=True)
>>> print scores
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]
https://stackoverflow.com/questions/6372198
复制相似问题