【问题标题】: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,但没有帮助。

有什么想法吗??

【问题讨论】:

    标签: python python-3.x


    【解决方案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 要求顺序为降序
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      相关资源
      最近更新 更多