python - 当第一个排序键相同时如何使用两个不同的排序键对列表进行排序
问题描述
在 python 中,这是否可以使用两个不同的排序键对列表进行排序?我们有一个包含三个子列表的列表,如图所示,
list = [ [1,2,3], [1,1,2],[13,3,4] ]
我想利用heapq.nsmallest
它对它进行排序,其中每个子列表中的第一个元素是排序键。如果第一个子列表(例如[1,2,3]
)和第二个子列表(例如[1,1,2]
)具有相同的排序键(例如1
),我想使用第二个元素作为新的排序键。
因此预期的输出是:
orderedlist = [ [1,1,2],[1,2,3],[13,3,4] ]
解决方案
您可以使用以下key
参数sorted
:
list1 = [ [1,2,3], [1,1,2],[13,3,4] ]
print(sorted(list1,key = lambda x: x[1]))
输出:
[[1, 1, 2], [1, 2, 3], [13, 3, 4]]
推荐阅读
- mongodb - 如何在 MongoDB 和 Spring Boot 中过滤文档
- continuous-integration - 我可以在 teamcity 统计选项卡中将测试执行 (Robot FR) 统计作为自定义统计图表吗?
- vba - ScreenUpdating 的值在设置为 False 后没有变化
- jquery - jquery - 为每个产品使用 .each() 一次以插入新价格
- python - Python 最佳拟合算法 -
- java - 当被调用者成员发生序列化异常时,Hazelcast 调用者成员抛出超时异常
- linux-device-driver - linux如何以及何时扫描MBR和GPT?
- react-native - 如何在没有反馈的情况下从可触摸获取数据
- cisco - 思科 Meraki 室内定位
- javascript - 如何重构这个命令式 JS 使其具有功能性?