python - 基于另一个排序的嵌套列表python对嵌套列表进行排序
问题描述
我有nested list
一个list
。在第一个嵌套列表中,它有dates
,在第二个中,它values
对应于日期。我需要对嵌套列表中的日期进行排序。应根据日期对相应的值进行排序。我知道sorted(list)
工作。但我不知道如何value
根据date
. 我希望date
类型在string
而不是date
。帮我解决一些问题。
这是列表:
a = [["2019-10-13","2019-10-12","2019-10-14","2019-10-11"],[10,28,5,37]]
需要输出
a = [["2019-10-11","2019-10-12","2019-10-13","2019-10-14"],[37,28,10,5]]
解决方案
单线解决方案:
list(zip(*sorted(zip(*a), key=lambda x: x[0])))
解释:
zip(*a)
将每个日期与其值配对- 然后我们按对的第一个元素对其进行排序(
key
是用于排序的函数,x
是传递的单个参数 - 在我们的例子中是一对,我们x[0]
用来获取日期) - 我们分别将其压缩回日期和数字
- 并将 zip 对象转换为列表
结果:
>>> list(zip(*sorted(zip(*a), key=lambda x: x[0])))
[('2019-10-11', '2019-10-12', '2019-10-13', '2019-10-14'), (37, 28, 10, 5)]
编辑:我完全阅读了你的问题并改变了。我以为你是按值排序日期,而不是相反,哎呀。现在它是正确的(结果是一样的)。
推荐阅读
- rest - 使用springboot的负载均衡机制
- javascript - React - 检查道具
- events - Firebase 分析。无法向事件添加自定义参数
- php - Sabre XML 编写器的输出是纯字符串
- json - 如何合并这两个数组以创建这种 JSON 格式,React
- vba - Type mismatch word
- python - 如何在base64字符串和numpy数组之间进行编码和解码?
- maven - 无法解析项目 com.neo:Neo4j:jar:0.0.1-SNAPSHOT 的依赖关系:未能找到 org.neo4j:neo4j-spatial:jar:0.25.5-neo4j-3.4.0
- php - 超链接 php 返回 db 值
- javascript - 使用 mCustomScroll 将修复标题 xy 滚动添加到表