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

Python中dict.update()返回None的原因解析

为什么使用update()合并字典会返回None?

问题出在dict.update()方法的特性上:

  • Python的update()方法是原地修改调用它的字典,会把第二个字典的键值对直接合并到第一个字典里,但这个方法本身的返回值固定为None,不会返回修改后的字典。
  • 你的函数直接返回了dict1.update(dict2)的结果,也就是None,所以打印出来就是这个值。

正确的解决方法

方法1:修改原字典后返回它

如果允许修改原字典dict1,可以先执行update(),再返回dict1:

def merge_dictionaries(dict1,dict2):
    dict1.update(dict2)
    return dict1

dict1 = {'Ten': 10, 'Twenty': 20, 'Thirty': 30}
dict2 = {'Thirty': 30, 'Fourty': 40, 'Fifty': 50}

print(merge_dictionaries(dict1,dict2))
# 输出: {'Ten': 10, 'Twenty': 20, 'Thirty': 30, 'Fourty': 40, 'Fifty': 50}

方法2:不修改原字典,返回新字典

如果不想改动原字典,可以先复制原字典,再合并:

def merge_dictionaries(dict1,dict2):
    merged_dict = dict1.copy()
    merged_dict.update(dict2)
    return merged_dict

方法3:用字典解包(Python 3.5+)

直接创建新字典,无需修改原字典:

def merge_dictionaries(dict1,dict2):
    return {**dict1, **dict2}

方法4:用|运算符(Python 3.9+)

Python 3.9及以上支持用|直接合并字典:

def merge_dictionaries(dict1,dict2):
    return dict1 | dict2

内容的提问来源于stack exchange,提问作者python_1239

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:00:56