![](/img/trans.png)
[英]finding values from a list of dictionaries where dicts have different amounts of keys
[英]Sort list of dictionaries based on values where keys have different names
我有一个字典列表,如下所示:
my_list = [
{'1200' : [10, 'A']},
{'1000' : [24, 'C']},
{'9564' : [6, 'D']},
]
列表中的所有词典都有一对键值对。
我想根据每个字典值的第一个元素(一个列表)对它进行排序,因此排序后的列表看起来像:
my_list_sorted = [
{'9564' : [6, 'D']},
{'1200' : [10, 'A']},
{'1000' : [24, 'C']},
]
如您所见,这些键具有不同的名称,这就是为什么我不能使用以下文章提供的答案的原因: 如何按字典值对字典列表进行排序?
您可以使用values()
访问dict
元素:
sorted(my_list, key=lambda x: x.values()[0][0])
输出:
[
{'9564': [6, 'D']},
{'1200': [10, 'A']},
{'1000': [24, 'C']}
]
假定每个条目都包含一个至少包含一个元素的列表。
编辑PYTHON 3
正如@cᴏʟᴅsᴘᴇᴇᴅ指出的那样, values()
不会在python3中返回列表,因此您必须这样做:
sorted(my_list, key=lambda x: list(x.values()[0])[0])
sorted(my_list,key=lambda x: list(x.values())[0][0])
Out[114]: [{'9564': [6, 'D']}, {'1200': [10, 'A']}, {'1000': [24, 'C']}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.