当每个字典具有不同的键时,如何按值对字典列表进行排序?

米格尔2488

我有以下字典列表:

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}]

我怎样才能做到这一点??任何帮助都感激不尽。

提前非常感谢你

U10转发

尝试使用此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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何对字典python的每个键的值进行排序?

Python:如何按几个值对字典列表进行排序?

Python:如何按几个值对字典列表进行排序?

如何按字典值对字典列表进行排序?

按多个值对字典列表进行排序

通过Python中每个键具有不同值的键过滤字典列表

按每个字典键对字典列表进行排序

当它们的键具有值列表时合并多个字典

Python:如何按值和索引对字典列表进行排序

仅按值和字典键对字典进行排序

按键对字典进行排序,然后对与每个键相关的值列表进行排序,并输出到CSV文件?

蟒蛇。我如何按列表的值对字典元组进行排序

当每个键不同时,如何按值对字典列表进行排序?

按第一个值对具有2d列表的字典进行排序

Python 3:创建多个字典的列表具有相同的键,但来自多个列表的值不同

我有一个字典列表,它们具有相同的键,而某些键的值不同

每个键具有多个值的字典,按值之一排序

将字典转换为按值排序的列表,每个项目具有多个值

如何遍历按值排序的字典的键?

根据不同的值对字典的键进行排序

如何从字典列表中过滤出具有重复键和不同值的元素?

如何按键对字典进行排序,并返回带有键和值的整个字典?

按值对包含字典列表的字典进行排序

如何按值对两个列表的字典进行排序

如何使用一个键升序和一个键降序按值对嵌套列表的字典进行排序?

值是列表时如何对python字典进行排序?

按字典python的值对列表进行排序

如何使用itemgetter按列表值对字典进行排序?

如何获取列表中一对字典的所有值的列表,每个字典都有不同的键?