【发布时间】:2013-11-24 17:37:52
【问题描述】:
我正在尝试组合两个字典以产生如下结果:
a = {"cat": 3, "dog": 4, "rabbit": 19, "horse": 3, "shoe": 2}
b = {"cat": 2, "rabbit": 1, "fish": 9, "horse": 5}
ab = {"cat": 5, "dog": 4, "rabbit": 20, "horse": 8, "shoe": 2, "fish": 9}
因此,如果它们具有相同的键,则将添加值,如果一个键存在于一个字典中但另一个键不存在,则它将其与其对应的值一起添加到新字典中。
这两个字典也都嵌套在单独的字典中,这样:
x = {'a': {"cat": 3, "dog": 4, "rabbit": 19, "horse": 3, "shoe": 2}, 'c': blah, 'e': fart}
y = {'a': {"cat": 2, "rabbit": 1, "fish": 9, "horse": 5}, 'c': help, 'e': me}
两个主词典中的键相同。
我一直在尝试合并这两个字典:
def newdict(x,y):
merged= [x,y]
newdict = {}
for i in merged:
for k,v in i.items():
new.setdefault(k,[]).append(v)
这给了我一个字典,其中的值属于列表中的相同键。我不知道如何遍历一个键的两个列表并将值相加以创建一个联合字典。谁能帮帮我?
最终结果应该是这样的:
xy = {'a' = {"cat": 5, "dog": 4, "rabbit": 20, "horse": 8, "shoe": 2, "fish": 9}, 'c': blah, 'e': me}
'c' 和 'e' 键我将不得不遍历并根据 'a' 的结果执行不同的计算。
我希望我足够清楚地解释了我的问题。
【问题讨论】:
标签: python python-3.x dictionary