繁体   English   中英

Python如何通过字典键对嵌套字典列表进行排序?

[英]Python how to sort a list of nested dictionaries by dictionary keys?

我有以下形式的嵌套字典列表:

list = [{key1: (tuple_value1, tuple_value2)}, {key2: (tuple_value1, tuple_value2)}, {key3: (tuple_value1, tuple_value2)}, ...]

如何根据列表中的KEY对列表进行排序? 我希望对列表进行排序,以便键按字母顺序排列。

我找到了一个表达式,该表达式将按我认为的值排序:

newlist = sorted(list_to_be_sorted, key=lambda k: k['name']) 

但我尚未成功按键进行排序。

你可以做。 这将按键对字典排序。 这仅在Python 2.7上有效

newlist = sorted(list_to_be_sorted, key=lambda k: k.keys()) 

尝试(适用于两个版本):

>>> lod=[{'b':[1,2,3]},{'a':[4,5,6]}]
>>> sorted(lod,key=lambda x: list(x.keys()))
[{'a': [4, 5, 6]}, {'b': [1, 2, 3]}]
>>> 

当然这也可以工作(两个版本均适用):

>>> lod=[{'b':[1,2,3]},{'a':[4,5,6]}]
>>> lod.sort(key=lambda x: list(x.keys()))
>>> lod
[{'a': [4, 5, 6]}, {'b': [1, 2, 3]}]
>>> 

但是对于python 2,@ ManojJadhav的答案是最好的,因为它更快,不使用外部list ,(使用较大的字典可以做很大的改变)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM