Как использовать понимание списка, чтобы добавить элемент в копии словаря?

данный:

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

Я хочу использовать понимание списка для создания

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

Я знаю, что могу сделать это:

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

но это немного многословно и не имеет преимуществ перед тем, что я пытаюсь заменить.

Этот немного более общий вопрос о слиянии словарей несколько связано, но более или менее говорит не надо.


person BCS    schedule 07.07.2010    source источник


Ответы (1)


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

или (для использования k):

[dict(template,**{k:value}) for value in add]
person unutbu    schedule 07.07.2010
comment
** используется для использования словаря в качестве аргументов ключевого слова docs.python.org /учебник/ - person Xavier Combelle; 07.07.2010