我有以下字典列表:
dicts = [{'ENE001SOLC': 3},
{'TRN002SIGN': 4},
{'ENE001SOLC': 4, 'TRN002SIGN': 3},
{'TRN002SIGN': 3},
{'TRN002SOLC': 3, 'SAL016DECL': 3},
{'ENE001SOLC': 5, 'SAL016DECL': 3},
{'ENE001SOLC': 4}]
我想按每个字典中的值以降序对列表进行排序(高位在前)。我已经访问过很多帖子,但是当每个字典的键值相同时,所有帖子都提供了对列表进行排序的解决方案,但事实并非如此。预期的输出将是这样的:
[{'ENE001SOLC': 5, 'SAL016DECL': 3},
{'ENE001SOLC': 4, 'TRN002SIGN': 3},
{'ENE001SOLC': 4},
{'TRN002SIGN': 4},
{'TRN002SOLC': 3, 'SAL016DECL': 3},
{'ENE001SOLC': 3},
{'TRN002SIGN': 3}]
我怎样才能做到这一点??任何帮助都感激不尽。
提前非常感谢你
尝试使用此sorted
命令,排序器将是该值的最大值,为什么我需要-
,所以我将数字设为负数,如果不这样做,则该顺序会从低到高:
print(sorted(dicts, key=lambda x: -max(x.values())))
对于大熊猫,Series
请执行以下操作:
dicts = dicts.to_frame()
dicts[1] = dicts[0].apply(lambda x: -max(x.values()))
dicts = dicts.sort_values(1)
print(dicts[0])
输出:
5 {'ENE001SOLC': 5, 'SAL016DECL': 3}
1 {'TRN002SIGN': 4}
2 {'ENE001SOLC': 4, 'TRN002SIGN': 3}
6 {'ENE001SOLC': 4}
0 {'ENE001SOLC': 3}
3 {'TRN002SIGN': 3}
4 {'TRN002SOLC': 3, 'SAL016DECL': 3}
Name: 0, dtype: object
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句