[英]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.