如何使用列表推导将元素添加到字典的副本?

BCS*_*BCS 12 python dictionary list-comprehension

给定:

template = {'a': 'b', 'c': 'd'}
add = ['e', 'f']
k = 'z'
Run Code Online (Sandbox Code Playgroud)

我想使用list comprehension来生成

[{'a': 'b', 'c': 'd', 'z': 'e'},
 {'a': 'b', 'c': 'd', 'z': 'f'}]
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做:

out = []
for v in add:
  t = template.copy()
  t[k] = v
  out.append(t)
Run Code Online (Sandbox Code Playgroud)

但它有点冗长,没有我想要取代的优势.

关于合并字典的这个稍微更一般的问题有些相关,但或多或​​少说不.

unu*_*tbu 19

[dict(template,z=value) for value in add]
Run Code Online (Sandbox Code Playgroud)

或(使用k):

[dict(template,**{k:value}) for value in add]
Run Code Online (Sandbox Code Playgroud)