假设我有两个词典:
d1 = {'a': 2, 'b': 4, 'c': 5, 'd': 6}
d2 = {'a': 5, 'c': 4, 'e': 8}
迭代第二个:
for k, v in d2.items():
我想在d1中检查密钥是否存在,如果是,那么将该值作为属性添加到密钥中,如果没有,则将其添加到字典中,以便我想要:
d1 = {'a': [2, 5], 'b': 4, 'c': [4, 5], 'd': 6, 'e': 8}
我知道如何使用IN运算符检查是否存在,但无法知道如何使用新属性更新dict。 请记住,我刚刚提出了一个简单的问题案例,它将在一个循环内,这意味着一个键可以有多个属性,而不仅仅是1或2。
谢谢。
答案 0 :(得分:3)
字典中的一个键不能有两个值。为此,您需要将值作为一个列表添加到" real"该键的值。
for k,v in d2.items():
if k in d1:
if isinstance(d1[k], list):
d1[k].append(v)
else:
d1[k] = [d1[k], v]
else:
d1[k] = v
然而,这似乎更直接:
for k,v in d2.items():
if k in d1:
d1[k].append(v)
else:
d1[k] = [v]
字典值的总和,假设您唯一需要的是总和:
使用以下代码替换代码
for k,v in d2.items():
if k in d1:
d1[k] = [sum(d1[k] + [v])]
else:
d1[k] = [v]