【发布时间】:2021-11-17 01:19:17
【问题描述】:
我有一个包含多个字典的列表。这些字典中的每一个都有一个 ID。我需要找出哪些字典具有匹配的 ID 值。然后我可以创建这两个字典的平均值的新字典。
例子:
[
{'id': 123, 'conversions': 1.4227642276422763, 'cpc': 2.2357723577235773, 'cpm': 4.471544715447155, 'reach': 90.65040650406505},
{'id': 123, 'conversions': 1.4056224899598393, 'cpc': 2.208835341365462, 'cpm': 5.622489959839357, 'reach': 89.5582329317269},
{'id': 1234, 'conversions': 1.4056224899598393, 'cpc': 2.208835341365462, 'cpm': 5.622489959839357, 'reach': 89.5582329317269},
]
所以在本例中,id = 123 出现在两个字典中。所以我想创建一个具有这两个字典平均值的新字典,如下所示:
{'id': 123, 'conversions': 1.414166666, 'cpc': 2.2225462, 'cpm': 5.622489959839357, 'reach': 89.5582329317269}
请注意,上述示例中的平均值并不完全正确。
我的方法是,我需要识别具有相似 ID 的字典,然后将它们分别存储在一个列表中。然后我可以使用以下方法来创建它们的平均值。
out = {k: mean(d[k] for d in lst) for k in lst[0]}
print(out)
我的问题是我无法识别它们并将它们存储在列表中。
谢谢
【问题讨论】:
标签: python list dictionary key key-value