2016-10-18 3 views
2

нисходящих У меня есть список словарей в Python, напримерСортировка списка словарей в порядке определенных ключевой

[{'a':3,'b':4,'c':5,d:'6'},{'a':1,'b':2,'c':7,d:'9'}] 

Я хочу, чтобы отсортировать их на основе значения «с» в порядке убывания. Я попытался использовать метод sorted(), используя key = lambda, но без помощи.

Любые идеи?

ответ

10

Существует много способов написать это. Перед тем, как вы комфортно с лямбды, то лучше всего сделать, это записать его в явном виде:

def sort_key(d): 
    return d['c'] 

sorted(list_of_dict, key=sort_key, reverse=True) 

Квалифицированный глаз будет видеть, что это так же, как следующий однострочника:

sorted(list_of_dict, key=lambda d: d['c'], reverse=True) 

Или, возможно:

from operator import itemgetter 
sorted(list_of_dict, key=itemgetter('c'), reverse=True) 
3
import operator 
list_of_dicts.sort(key=operator.itemgetter('c')) 
+1

Up проголосовали. Но также упомяните 'reverse = True', поскольку OP запросил, чтобы порядок был убывающим –

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