【问题标题】:Return keys sorted by value in dictionary of arrays返回按数组字典中的值排序的键
【发布时间】:2021-02-19 15:47:31
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: python python-3.x list sorting dictionary


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    你可以使用明显的按键功能:

    sorted(mydict, key=lambda k: mydict[k][1])
    

    【讨论】:

      猜你喜欢
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 2019-09-18
      • 2017-05-30
      • 2017-06-18
      • 2017-12-17
      • 2016-04-17
      • 1970-01-01
      相关资源
      最近更新 更多