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

Posted

技术标签:

【中文标题】如何使用列表推导将元素添加到字典副本?【英文标题】:How to use list comprehension to add an element to copies of a dictionary? 【发布时间】:2011-03-12 23:00:52 【问题描述】:

给定:

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)

但它有点冗长,与我要替换的内容相比没有优势。

这个稍微笼统的question on merging dictionaries有点相关,但或多或​​少说不。

【问题讨论】:

【参考方案1】:
[dict(template,z=value) for value in add]

或(使用k):

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

【讨论】:

** 用于将字典用作关键字参数docs.python.org/tutorial/…

以上是关于如何使用列表推导将元素添加到字典副本?的主要内容,如果未能解决你的问题,请参考以下文章

python如何将列表中的元素添加进字典

如何使用映射或过滤器而不是列表推导过滤特定值的嵌套字典(pythonic 方式)?

将通用列表的元素添加到字典

如何将字典项分别添加到 SwiftUI 列表中

如何使用 SQLAlchemy 将新字典添加到字典列表中

如何使用键将对象添加到 NSMutableDictionary?