【发布时间】:2015-10-11 13:15:24
【问题描述】:
我有一个包含多个键的字典列表,我想获取多个列表,每个列表都有字典的索引,按特定键排序。
例如,我有以下列表
a = [{"name": "Zoe", "age": 13}, {"name": "Adam", "age": 31}]
我知道我可以做到以下几点
from operator import itemgetter
sorted(a, key=itemgetter("name"))
获取以下信息
[{'name': 'Adam', 'age': 31}, {'name': 'Zoe', 'age': 13}]
但我真的希望能够获得两个带有索引的列表:
[1, 0] # order of the elements in `a` as sorted by name
[0, 1] # order of the elements in `a` as sorted by age
我的真实字典有更多的键值对,我返回 a 和具有按不同键排序的索引的附加列表而不是 a 的多个排序列表对我来说更有效。
【问题讨论】:
-
那么您到底期望输出什么?列表的列表,其中每个子列表都是排序的
a列表? -
sorted(a, key=itemgetter("name"))这部分应该引发NameError。它们与您尝试过的代码完全相同吗? -
@marmeladze:我想我们可以假设有一个
from operator import itemgetter行。 -
@marmeladze 没有。但 Martjin 已经按照应有的方式修复了它
-
@MartijnPieters 谢谢。我正在快速打字......
标签: python list sorting dictionary