我有这些词典
{
'id': 5,
'quantity: 10
}
{
'id': 5,
'quantity: 15
}
我想要这样的东西
{
'id': 5,
'quantity': 25
}
编辑:基本上,我想要结合类似ids
的数量
对不起,如果我过多地简化了我的问题。是的我有这些词汇的清单
products = [{...}, {...}, {...}, ...]
答案 0 :(得分:0)
这是一个简单的解决方案,它使用for循环迭代dic1中的每个键
dic1 = {'id': 5, 'quantity': 10}
dic2 = {'id': 5, 'quantity': 15}
for key in dic1:
if key in dic2:
dic1[key] += dic2[key]
答案 1 :(得分:-1)
你可以使用词典理解。
d = {key: dict1[key] + dict2[key] for key in dict1}
当且仅当您的词典具有完全相同的键时,这将起作用。在更复杂的情况下,您要么拥有无人代表的密钥,要么抛出KeyError
。如果这是一个问题,您可以尝试使用collections.Counter
个对象(通过将整数的默认值设置为0来避免KeyError
)或者只是重构代码并将其分解为循环以获得您需要的内容
如果dicts有可能具有不同的ID,这将有效:
from collections import Counter
c1 = Counter(dict1)
for key in dict2:
c1[key] += dict2[key]
c1
是你加入的词汇。如果dict1
的密钥不在dict2
中,则它们将从初始化步骤显示在c1
中。如果dict2
的密钥不在dict1
中,则会将其添加到c1
而不进行修改。