You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何通过解构字典创建带新键的新字典?

Python 中创建含新键的新字典的惯用写法

在Python 3.5及以上版本中,你可以用字典解包语法(**)实现类似JavaScript解构的简洁写法,完全支持内联构造字典作为函数参数,无需先创建中间变量。

1. 创建新字典变量

直接合并原字典和新键值对:

obj1 = {"a": 1, "b": 2}
obj2 = {**obj1, "c": 3}
# obj2 结果: {"a": 1, "b": 2, "c": 3}

如果需要覆盖原字典中的已有键,只需把新键值对放在后面即可:

obj2 = {**obj1, "a": 100, "c": 3}
# obj2 结果: {"a": 100, "b": 2, "c": 3}

2. 内联作为函数参数

和JavaScript的写法逻辑一致,直接在函数调用时构造新字典:

def some_function(obj):
    print(obj)

obj1 = {"a": 1, "b": 2}
# 直接内联传递合并后的字典
some_function({**obj1, "c": 3})

3. Python 3.9+ 更简洁的语法

Python 3.9及以上新增了字典合并运算符|,写法更直观:

# 创建新字典
obj2 = obj1 | {"c": 3}
# 内联作为函数参数
some_function(obj1 | {"c": 3})

注意:|运算符会返回一个新字典,不会修改原字典;如果要原地修改原字典,可以用|=:

obj1 |= {"c": 3}
# obj1 现在变为 {"a": 1, "b": 2, "c": 3}

你之前用copy()再加赋值的写法确实繁琐,上面这些语法完全能满足你像JavaScript/Perl那样的简洁需求。

内容的提问来源于stack exchange,提问作者Peter V. Mørch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 10:06:10