开发者

How to use list comprehension to add an element to copies of a dictionary?

given:

template = {'a': 'b', 'c': 'd'}
add = ['e', 'f']
k = 'z'

I want to use list comprehension to generate

[{'a': 'b', 'c': 'd', 'z': 'e'},
 {'a': 'b', 'c': 'd', 'z': 'f'}]

I know I can do this:

out = []
for v in add:
  t = template.copy()
  t[k] = v
  out.append(t)

but 开发者_如何学编程it is a little verbose and has no advantage over what I'm trying to replace.

This slightly more general question on merging dictionaries is somewhat related but more or less says don't.


[dict(template,z=value) for value in add]

or (to use k):

[dict(template,**{k:value}) for value in add]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜