【发布时间】:2017-02-28 06:05:44
【问题描述】:
我有一个python字典列表,例如
[{'a':3, 'b':4, 'c':5, 'd':'6'}, {'a':1, 'b':2, 'c':7, 'd':'9'}]
我想根据 'c' 的值按降序对其进行排序。我尝试使用sorted() 方法使用key = lambda,但没有帮助。
有什么想法吗??
【问题讨论】:
标签: python python-3.x
我有一个python字典列表,例如
[{'a':3, 'b':4, 'c':5, 'd':'6'}, {'a':1, 'b':2, 'c':7, 'd':'9'}]
我想根据 'c' 的值按降序对其进行排序。我尝试使用sorted() 方法使用key = lambda,但没有帮助。
有什么想法吗??
【问题讨论】:
标签: python python-3.x
有很多方法可以写这个。在您熟悉 lambda 之前,最好的办法是明确地写出来:
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)
【讨论】:
import operator
list_of_dicts.sort(key=operator.itemgetter('c'), reverse=True)
【讨论】:
reverse=True,因为 OP 要求顺序为降序