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

Python 2.7字典update方法返回None问题求助

为什么update()返回None?怎么解决?

嘿,这个问题我太熟了!你踩的是Python字典update()方法的一个常见设计坑——它是原地修改原字典,不会返回更新后的字典本身,而是固定返回None。所以当你写return dis.update({"Key": ls})时,实际返回的是这个方法的返回值None,不是更新后的字典。

两种实现你需求的方法

如果你想在一行内完成更新并返回期望的字典,或者让代码正确返回结果,有两种常用思路:

方法1:先修改再返回原字典(简单直观)

先调用update()原地修改字典,再返回原字典本身,逻辑清晰易懂:

def to_json(condition=True):
    ls = ["abc", "xyz", "123"]
    dis = { "id": 123, "value": "1122" }
    if condition is False:
        return dis
    else:
        dis.update({"Key": ls})
        return dis

运行print(to_json())就会输出你想要的{'id': 123, 'value': '1122', 'Key': ['abc', 'xyz', '123']}。

方法2:字典解包生成新字典(真正一行返回)

如果非要在return语句里一行完成,可以用字典解包语法生成一个全新的字典,不用修改原字典:

def to_json(condition=True):
    ls = ["abc", "xyz", "123"]
    dis = { "id": 123, "value": "1122" }
    return dis if not condition else {**dis, "Key": ls}

这里{**dis, "Key": ls}会把原字典dis的所有键值对展开,再加上新的键值对,直接返回合并后的新字典,完美满足你“一行内完成更新并返回”的需求。

额外小技巧(Python 3.9+适用)

如果你的Python版本是3.9及以上,还可以用更简洁的字典合并运算符|,同样返回新字典:

return dis if not condition else dis | {"Key": ls}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:57:39