按特定键的降序对字典列表进行排序[重复]

Posted

技术标签:

【中文标题】按特定键的降序对字典列表进行排序[重复]【英文标题】:Sorting the list of dictionaries in descending order of a particular key [duplicate] 【发布时间】: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,但没有帮助。

有什么想法吗??

【问题讨论】:

【参考方案1】:

有很多方法可以写这个。在您熟悉 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)

【讨论】:

【参考方案2】:
import operator
list_of_dicts.sort(key=operator.itemgetter('c'), reverse=True)

【讨论】:

赞成。但也要提到reverse=True,因为 OP 要求顺序为降序

以上是关于按特定键的降序对字典列表进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何按第一位数字的降序对整数数组进行排序? [关闭]

按 C 中元素出现频率的降序对数组进行排序

c_cpp 按设置位的降序对数组进行排序

如何根据特定值按降序对数组进行排序[重复]

按降序对int数组进行排序[重复]

如何根据php中日期列的降序对mysql结果数组进行排序?