2014-11-20 4 views
-2

Если бы я был список словарей:Как отсортировать список словарей?

[{'name':a, 'number':b, 'blah':c, 'swag':d}, 
{'name':a_1,'number':b_1,'blah':c_1,'sw‌​ag':d_1}, 
{'name':a_2,'number':b_2,'blah':c_2,'swag':d_2}] 

Как бы напечатать все значения «имя» в алфавитном порядке, а значения «число» в порядке убывания? И, допустим, значения «a» являются строками, а значения «b» являются целыми числами. Как бы напечатать все значения «имя» в алфавитном порядке и значения «числа» в порядке убывания?

+0

Это не словари python {a, b, c, d}. Словари - это пары {ключ: значение}. –

+0

лучше u может использовать вложенный список и показывать фактические данные – Hackaholic

+0

Итак, вы ожидаете двух результатов своих списков? один на основе «a», который является строкой, и другой i.e 'b', основанный на integer. –

ответ

1

Вы можете отсортировать список, используя встроенную «отсортированную» функцию. И вы можете извлечь имена и цифры, используя понимание списка. Объединяя два:

>>> dict_list = [{'name':a,'number':b,'blah':c,'swag':d},{'name':a_1,'number':b_1,'blah':c_1,'sw\U+200C​ag':d_1},{'name':a_2,'number':b_2,'blah':c_2,'swag':d_2}] 
>>> sorted_names = sorted([d['name'] for d in dict_list]) 
>>> sorted_names 
['a', 'a_1', 'a_2'] 
>>> sorted_numbers = sorted([d['number'] for d in dict_list], reverse=True) 
>>> sorted_numbers 
[3, 2, 1] 
0

Для сортировки Dict по «имени» в возрастающем/алфавитном порядке, а затем (для тех Словаря, которые имеют то же самое «имя») по «количеству» в порядке убывания,

первый сорт 'число' в порядке убывания

list_of_dict_by_numbers = sorted(original_list_of_dict, key=lambda d: d['number'], reverse=True) 

или

list_of_dict_by_numbers = sorted(original_list_of_dict, key=lambda d: -d['number']) 

Затем сортировать 'имя' в порядке возрастания/алфавитный порядок

result = sorted(list_of_dict_by_numbers, key=lambda d: d['name']) 

Поскольку питон рода является стабильным, эти Dict записи, которые имеют один и тот же «имя» сохранит свой «номер» в отсортированном порядке убывания.

How to sort in Python

Смежные вопросы