首页 > 解决方案 > 返回按数组字典中的值排序的键

问题描述

我不是 python 专家,所以这可能很容易解决和/或重复。

我有一个这样的数组字典:

mydict = {
  "Anna": [10, 25, 6],
  "Bob": [15, 21, 9],
  "Carl": [17, 28, 3]
     }

返回根据数组中的一个值排序的键列表的最简单方法是什么?假设我想根据数组 ( 25, 21, 28) 的第二个值对它们进行排序,以便按此顺序获取列表["Bob", "Anna", "Carl"]

我的字典有几万条,可能有几百万条,所以效率很重要。

标签: pythonpython-3.xlistsortingdictionary

解决方案


制作一个易于排序的数据结构列表,例如(25, 'Anna'),对其进行排序,然后去掉多余的值。作为一个单行:

[i[1] for i in sorted((v[1], k) for k, v in mydict.items())]

推荐阅读