zip 2字典列表为1

L-R*_*L-R 1 python zip dictionary list

我有这样的第一个清单

[{"name":"jon", "age":10}, {"name":"mary", "age":12}]
Run Code Online (Sandbox Code Playgroud)

第二个清单就像这样

[{"city":"nyc"}, {"city":"la"}]
Run Code Online (Sandbox Code Playgroud)

并希望将它们组合成一个单词列表.假设它们的长度也相同.

[{"name":"jon", "age":10, "city":"nyc"}, {"name":"mary", "age":12, "city":"la"}]
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ash*_*ary 7

使用list comprehension:

>>> lis1 = [{"name":"jon", "age":10}, {"name":"mary", "age":12}]
>>> lis2 = [{"city":"nyc"}, {"city":"la"}]
>>> [dict(x, **y) for x, y in zip(lis1, lis2)]
[{'city': 'nyc', 'age': 10, 'name': 'jon'}, {'city': 'la', 'age': 12, 'name': 'mary'}]
Run Code Online (Sandbox Code Playgroud)

由于Guido不喜欢 dict(x, **y),另一种选择是:

>>> [dict(x.items() + y.items()) for x, y in zip(lis1, lis2)]
[{'city': 'nyc', 'age': 10, 'name': 'jon'}, {'city': 'la', 'age': 12, 'name': 'mary'}]
Run Code Online (Sandbox Code Playgroud)