Python как отсортировать список вложенных словарей по словарным ключам? - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть список вложенных словарей, вида:

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

Как мне отсортировать этот список на основе КЛЮЧЕЙ в этом списке? Я хочу, чтобы список был отсортирован так, чтобы ключи были в алфавитном порядке.

Я нашел выражение, которое будет сортировать по значениям, которым я верю:

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

Но мне еще не удалось отсортировать по ключам.

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Try (работает для обеих версий):

>>> 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 снаружи (это может сделать довольно большие изменения с большими словарями)

0 голосов
/ 03 сентября 2018

вы можете сделать. Это отсортирует ваш диктант по ключам. Это работа только на Python 2.7

newlist = sorted(list_to_be_sorted, key=lambda k: k.keys()) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...