首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >排序元组Python

排序元组Python
EN

Stack Overflow用户
提问于 2011-06-16 20:55:46
回答 3查看 40K关注 0票数 20

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

代码语言:javascript
复制
scores=[(1489,"Sean"), (2850,"Bob"), (276,"Crap Player"), (78495, "Great Player"), (8473, "Damian"), (4860, "Andy"), (0, "Stephen")]

我试着用这个来根据他们的分数进行排序

代码语言:javascript
复制
sorted(scores, key=lambda score: score[0], reverse=True)

但这是行不通的。我不知道为什么。有什么建议吗?

我考虑过一个更好的实现方式,那就是使用字段namescore创建一个新的Score

编辑:

感谢你们的快速回复

它没有给我提供sorted方法的错误,但没有排序。我使用了sort(),它可以工作。

我认为python在Blender中可能有点奇怪?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-16 20:57:21

只需这样做:

代码语言:javascript
复制
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),顺便说一下,在元组列表的情况下,默认情况下按第一项、第二项排序。

票数 31
EN

Stack Overflow用户

发布于 2011-06-16 20:58:25

sorted()返回排序后的序列。如果你想在原地对列表进行排序,那么使用list.sort()

票数 10
EN

Stack Overflow用户

发布于 2013-12-02 17:22:54

代码语言:javascript
复制
scores.sort(reverse=True)
>>> print scores
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6372198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档