我努力将一个值附加到所有都位于列表中的另一个字典中(这意味着要进行迭代) 我是python的初学者,所以如果有人可以帮助我:) 这是我尝试做的事的一个例子:
dict_a = [
{ 'key1' : 'name',
'key2' : 'int1',
'key3' : 'useless',
'key4' : 'valtest'},
{ 'key1' : 'name',
'key2' : 'int2',
'key3' : 'useless',
'key4' : 'valtest' }]
dict_b = [
{ 'a' : '1',
'b' : 'name',
'c' : '3',
'd' : 'int0',
'e' : 'id0' },
{ 'a' : '1',
'b' : 'name',
'c' : '3',
'd' : 'int1',
'e' : 'id1' },
{ 'a' : '1',
'b' : 'name',
'c' : '3',
'd' : 'int2',
'e' : 'id2' },
{ 'a' : '1',
'b' : 'name',
'c' : '3',
'd' : 'int3',
'e' : 'id3' },
{ 'a' : '1',
'b' : 'name',
'c' : '3',
'd' : 'int1',
'e' : 'id4' }]
这是我想要获得的结果:
dict_c = [
{ 'key1' : 'name',
'key2' : 'int1',
'key3' : 'useless',
'key4' : 'valtest',
'key5' : 'id1'},
{ 'key1' : 'name',
'key2' : 'int2',
'key3' : 'useless',
'key4' : 'valtest',
'key5' : 'id2'}]
根据条件key1 = b和key2 = d,请注意dict_c上的'key5'在dict_b上为'e'
以我的小知识,我已经尝试过:
for v in dict_a and vv in dict_b:
if v['key1'] == vv['b'] and v['key2'] == vv['d']:
v['key5'] = vv['e']
,但有时回溯说: NameError:名称“ vv”未定义
有时: TypeError:“ bool”对象不可迭代
我如何获得结果?
预先感谢
答案 0 :(得分:0)
您快到了,我就认真修改您的代码:
for v in dict_a and vv in dict_b:
if v['key1'] == vv['b'] and v['key2'] == vv['d']:
v['key5'] = vv['e']
收件人
for v in dict_a:
for vv in dict_b:
if v['key1'] == vv['b'] and v['key2'] == vv['d']:
v['key5'] = vv['e']
在沙箱中检查以下代码: python sandbox