我有一个字典列表
lst = [ {'x': 1, 'y': 2}, {'x': 1, 'y': 3 }, {'x': 2, 'y': 2 } ]
字典始终具有相同的键,并且值始终在变化。
所以我想在键“x”具有相同值时对键“y”的值求和。
输出应给出:lst # [{'x': 1, 'y': 5 }, {'x': 2, 'y': 2 }].
我有一个字典列表
lst = [ {'x': 1, 'y': 2}, {'x': 1, 'y': 3 }, {'x': 2, 'y': 2 } ]
字典始终具有相同的键,并且值始终在变化。
所以我想在键“x”具有相同值时对键“y”的值求和。
输出应给出:lst # [{'x': 1, 'y': 5 }, {'x': 2, 'y': 2 }].
一种选择是
itertools.groupby
根据 key 的值对字典进行分组'x'
。一旦完成,使用列表压缩来获得最终列表很简单,添加键的值'y'
(以及其他键,如果它们存在):输出是
[{'x': 1, 'y': 5}, {'x': 2, 'y': 2}]
。另一种解决方法:
我已经解决了这个问题,就像这样。