python - 如何在python中按顺序对列表进行排序?
问题描述
如何按顺序对列表进行排序?我有一个列表中的元组列表,我需要按我想要的顺序对它们进行排序。
list1 = [(2,3,4),(3,4,5),(5,3,2)]
我需要首先按元组的第二个元素对它们进行排序,其次(如果前一个元素相等)按第三个元素排序,第三个按第一个元素排序。是否有任何内置功能可以做到这一点?
解决方案
您可以使用sorted(iterable,key)
.
>>>sorted(list1,key=lambda x: (x[1],x[2],x[0])
#[(5, 3, 2), (2, 3, 4), (3, 4, 5)]
如果您不想使用lambda
,可以使用itemgetter
.
from operator import itemgetter
sorted(list1,key=itemgetter(1,2,0))
#[(5, 3, 2), (2, 3, 4), (3, 4, 5)]
推荐阅读
- wix - 复制日志无法复制 Wix 安装程序中的完整信息
- gradle - 应用用 Groovy 编写的自定义插件
- ios - 在滚动视图中设置具有动态大小的多个视图
- regex - Notepad++ 正则表达式剪切行的最后一个单词并将其粘贴到开始
- r - R ggplot2 构面内的构面
- ruby-on-rails - 如何在 Rail 5 中使用 Materialize 和 SimpleForm 将 CSS 类应用于 Select
- c# - 尝试在几次中仅读取一次值
- c - Xlib解析颜色不渲染
- java - 我们有专门针对 Spring 5.x 的 XSD 吗?
- python - 最简单的 Python 多线程 - 编写一个简单的文件