我有一个包含字典的列表,并且在每个字典中,值也列表如下:
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 的情况下在 oneliner 中做到这一点?
这个问题与this one不同。 。在这种情况下,列表内字典的值仅包含整数,而此问题将列表作为主列表内字典的值。
最佳答案
使用排序
演示:
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]}]
关于python - 根据字典中列表值的第二项对以列表为值的字典列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52439646/