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

时间:2018-09-03 03:40:05

标签: python list sorting dictionary nested

我有一个嵌套字典的列表,格式为:

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']) 

但是我还没有成功按键进行排序。

2 个答案:

答案 0 :(得分:2)

您可以做到。这将按键对字典排序。这仅适用于Python 2.7

SELECT EXTRACT(YEAR_MONTH from create_time),COUNT(id) 
FROM b_project 
WHERE create_time > '2018-09-01'
GROUP_BY EXTRACT(YEAR_MONTH from create_time)

答案 1 :(得分:2)

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

id
artist_id
product_id
title
label

当然这也适用(两个版本均适用):

>>> 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]}]
>>> 

但是对于python 2,@ ManojJadhav的答案是最好的,因为它更快,不在外部使用>>> 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]}] >>> ,(这对于较大的字典可以做很大的改变)