我想用另外两个字典的值替换字典中的值列表。
例如,我有一个名为“a_dict”的字典,每个键都有一个值作为列表
a_dict = {'A1':[10,20,30,40,50,60,70],'B1':[30,50,60,70,80]}
现在我需要用一个新的dict替换与“old”匹配的dict中的值,如下所示,
old_dict = {0: 10, 1: 30}
new_dict = {0: 100, 1: 300}
所以新的命令应该是,
a_dict_new = {'A1':[100,20,300,40,50,60,70],'B1':[300,50,60,70,80]}
我试图想出下面的代码,但它没有给我正确的解决方案,
a_dict = {'A1':[10,20,30,40,50,60,70],'B1':[30,50,60,70,80]}
old_dict = {0: 10, 1: 30}
new_dict = {0: 100, 1: 300}
#a_dict_new = {'A1':[100,20,300,40,50,60,70],'B1':[300,50,60,70,80]}
a_dict_new = {}
for ky1, val1 in old_dict.items():
for ky2, ls in a_dict.items():
new_ls=[]
for v in ls:
if (v==val1):
new_ls.append(new_dict[ky1])
else:
new_ls.append(v)
a_dict_new[ky2]=new_ls
#
print(a_dict_new)
OUTPUT 1: {'A1': [10, 20, 300, 40, 50, 60, 70], 'B1': [300, 50, 60, 70, 80]}
在第一个for循环的第一次迭代中,值10在一个新的dict中更改为100,但在第二次迭代中,它覆盖了第一次替换。因此,输出看起来只更改了30到300。
有人能推荐一种有效的方法来执行python 3的字典替换操作吗?