python - 是否可以在单个链式表达式中复制和更新 python 字典?

标签 python dictionary

考虑以下几点:

x = {1:2}
y = x.copy() # returns a new dictionary
y = x.copy().update({2:3}) # returns None
y = x.copy()[2] = 3 # invalid syntax

鉴于以上都不起作用,是否有一种方法可以将命令链接到 Dict.copy() 以在单个命令中复制和更新字典?

最佳答案

是的,您可以使用 dict() function创建一个副本并添加关键字参数;使用 **{...} 添加不是 Python 标识符的任意键:

y = dict(x, **{2: 3})

对于恰好是有效 Python 标识符的字符串键(以字母开头,仅包含字母、数字和下划线),使用 dict() 的关键字参数:

y = dict(x, foo_bar='spam_eggs')

您可以结合这两种样式,并添加更多键:

y = dict(x, foo='spam', bar='eggs', **{2: 3, 42: 81})

演示:

>>> x = {1: 2}
>>> dict(x, **{2: 3})
{1: 2, 2: 3}
>>> dict(x, foo_bar='spam_eggs')
{1: 2, 'foo_bar': 'spam_eggs'}
>>> dict(x, foo='spam', bar='eggs', **{2: 3, 42: 81})
{1: 2, 2: 3, 'foo': 'spam', 'bar': 'eggs', 42: 81}
>>> x  # not changed, copies were made
{1: 2}

关于python - 是否可以在单个链式表达式中复制和更新 python 字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33576444/

相关文章:

python - 通过 pandas 数据框迭代绘制日期范围之间的水平线

python - 一个类的值(value)是什么?

swift - 将许多不同对象保存到核心数据的最佳方法

c# - 检查多边形是否被点击

python - 将图形旋转至经纬度

python - 在Python pdfkit中指定字体

python - 贝叶斯神经网络 : Computation of Hessian

ios - 如何检查 child 是否在字典中出现多次

javascript - 如何在不扩展为列表的情况下减少(...)JavaScript Map 对象的条目?

javascript - 在mapbox/传单中设置geojson线的样式