代码之家  ›  专栏  ›  技术社区  ›  Arkistarvh Kltzuonstev

基于字典中列表值的第二项对以列表为值的字典列表进行排序

  •  0
  • Arkistarvh Kltzuonstev  · 技术社区  · 6 年前

    a = [{"25.21" : [400,500] , "25.22" : [700,502]} , {"12.15" : [350,800] , "12.13" : [750,803]}]
    

    a = [ {"12.13" : [750,803] , "12.15" : [350,800] } , {"25.22" : [700,502], "25.21" : [400,500] }]
    

    作为字典中每个键的值的列表的第一项是不同的。如果可能的话,如何在一行代码中不使用操作符itemgetter来实现这一点?

    这个问题和 this one

    1 回复  |  直到 6 年前
        1
  •  3
  •   Rakesh    6 年前

    使用 sorted

    a = [{"25.21" : [400,500] , "25.22" : [700,502]} , {"12.15" : [350,800] , "12.13" : [750,803]}]
    
    print(sorted(a, key=lambda x: list(x.items())[1][1], reverse=True))
    #print(sorted(a, key=lambda x: x.items()[1][1], reverse=True))   #python2
    

    输出:

    [{'12.15': [350, 800], '12.13': [750, 803]}, {'25.21': [400, 500], '25.22': [700, 502]}]