python - 返回按数组字典中的值排序的键
问题描述
我不是 python 专家,所以这可能很容易解决和/或重复。
我有一个这样的数组字典:
mydict = {
"Anna": [10, 25, 6],
"Bob": [15, 21, 9],
"Carl": [17, 28, 3]
}
返回根据数组中的一个值排序的键列表的最简单方法是什么?假设我想根据数组 ( 25, 21, 28
) 的第二个值对它们进行排序,以便按此顺序获取列表["Bob", "Anna", "Carl"]
我的字典有几万条,可能有几百万条,所以效率很重要。
解决方案
制作一个易于排序的数据结构列表,例如(25, 'Anna')
,对其进行排序,然后去掉多余的值。作为一个单行:
[i[1] for i in sorted((v[1], k) for k, v in mydict.items())]
推荐阅读
- apache-spark - 如何在 pyspark 数据框中读取 protoBuffer .pb 文件?
- laravel - Laravel,完整性约束违规
- c - eredis 中的 BRPOP 非阻塞
- c++ - 在 unordered_multimap 中准确地迭代每个键一次的有效方法
- vue.js - 为什么一键打开所有扩展卡?
- c++ - 我应该返回什么而不是 std::shared_ptr<>&?
- azure-devops - Azure DevOps:获取并传递 Unix 时间作为变量
- javascript - 为什么 requestHeaders 未定义?
- go - 如何通过 go 的 dep 编译 vegeta?
- python-3.x - 行为找不到步骤文件