我有以下字典:
dict1 = {'key1': ['val1', 'val2', 'val3'], 'key2': ['val3', 'val4']}
dict2 = {'val1': ['a', 'b'], 'val3': ['c', 'd']}
如何更新dict1from 中的值以dict2更新以下內容dict1?
{'key1': ['a', 'b', 'val2', 'c', 'd'], 'key2': ['c', 'd', 'val4']}
uj5u.com熱心網友回復:
您可以遍歷每對第一個 dict 并用dict2if中指向的串列替換每個值,否則保留該值。這可以很好地完成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']}
uj5u.com熱心網友回復:
您可以使用嵌套理解:
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']}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/312965.html
