[英]Python update dictionary value list with another dictionary
我有以下字典:
dict1 = {'key1': ['val1', 'val2', 'val3'], 'key2': ['val3', 'val4']}
dict2 = {'val1': ['a', 'b'], 'val3': ['c', 'd']}
如何从dict2
更新dict1
中的值以获得以下更新的dict1
?
{'key1': ['a', 'b', 'val2', 'c', 'd'], 'key2': ['c', 'd', 'val4']}
您可以遍历每对第一个 dict 并用dict2
中指向的列表替换每个值(如果存在),否则保留该值。 这可以用dict.get
很好地完成,它将返回要使用的新值列表或[value]
这是实际值
dict1 = {'key1': ['val1', 'val2', 'val3'], 'key2': ['val3', 'val4']}
dict2 = {'val1': ['a', 'b'], 'val3': ['c', 'd']}
for key, values in dict1.items():
new_values = []
for value in values:
new_values.extend(dict2.get(value, [value]))
dict1[key] = new_values
print(dict1) # {'key1': ['a', 'b', 'val2', 'c', 'd'], 'key2': ['c', 'd', 'val4']}
您可以使用嵌套理解:
dict1 = {'key1': ['val1', 'val2', 'val3'], 'key2': ['val3', 'val4']}
dict2 = {'val1': ['a', 'b'], 'val3': ['c', 'd']}
dict1 = { k1:[v2 for v1 in values1 for v2 in dict2.get(v1,[v1])]
for k1,values1 in dict1.items()}
print(dict1)
{'key1': ['a', 'b', 'val2', 'c', 'd'], 'key2': ['c', 'd', 'val4']}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.