为 dict 的每个 dict 添加新的键值与 dict 列表

MrO*_*Sir 1 python

我有字典的字典:

a = {
    'a': {'id': 1},
    'b': {'id': 1},
    'c': {'id': 1}
}
Run Code Online (Sandbox Code Playgroud)

和字典列表:

b = [{'word': 'foo'}, {'word': 'baz'}, {'word': 'bar'}]
Run Code Online (Sandbox Code Playgroud)

我需要将 a 中的每个字典更新为 b 中的每个值关键字

例子:

a = {
    'a': {'id': 1, 'word': foo},
    'b': {'id': 1, 'word': baz},
    'c': {'id': 1, 'word': bar}
}
Run Code Online (Sandbox Code Playgroud)

我尝试用下一种方法来做:

[
a.update(
    {
        'word': i
    }
)
for a in a.values()
for i in [
    df['word'] for df in b
    ]
]
Run Code Online (Sandbox Code Playgroud)

但我有所有新键和最后一个词栏:

    a = {
    'a': {'id': 1, 'word': bar},
    'b': {'id': 1, 'word': bar},
    'c': {'id': 1, 'word': bar}
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决它?

che*_*ner 6

用于zip并发a迭代b

for k, d in zip(a, b):
    a[k].update(d)
Run Code Online (Sandbox Code Playgroud)

结果:

{'a': {'id': 1, 'word': 'foo'}, 
 'b': {'id': 1, 'word': 'baz'},
 'c': {'id': 1, 'word': 'bar'}}
Run Code Online (Sandbox Code Playgroud)

您还可以用作a.values()以下参数之一zip

for d1, d2 in zip(a.values(), b):
    d1.update(d2)
Run Code Online (Sandbox Code Playgroud)