如何对两个列表中具有相同键的字典值求和?

2024-09-21 05:25:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个字典清单:

rich = [
    {'currency': 'USD', 'value': 100},
    {'currency': 'EUR', 'value': 110},
    {'currency': 'USD', 'value': 120},
    {'currency': 'GBP', 'value': 130},
]

poor = [
    {'currency': 'USD', 'value': 10},
    {'currency': 'AED', 'value': 20},
]

如何将两者结合起来,以便获得:

^{pr2}$

是吗?在

from collections import Counter很有用,因为它可以用同一个键对字典值求和,但我仍然不知道如何用dictionaries列表来计算。在

x = {'value': 123}
y = {'value': 2}

Counter(x) + Counter(y) = {'value': 125}

Tags: fromimport字典valuecountereurcollectionscurrency
1条回答
网友
1楼 · 发布于 2024-09-21 05:25:39

一个更符合逻辑的结构是有一个字典,以货币为键,值为值。让我们使用defaultdict来创建一个(这样新的键就会自动以0开始):

currencies = defaultdict(int)

现在把你的话加上:

^{pr2}$

产生了类似(不一定是同一顺序)的东西:

{
    'USD': 230,
    'EUR': 110,
    'GBP': 130,
    'AED': 20
}

现在,如果你真的需要,把它转换回你的列表:

rich_and_poor = [{'currency': key, 'value': value} for key, value in currencies.items()]

相关问题 更多 >

    热门问题