我需要python 2.7中字典更新功能的相关帮助

我需要python 2.7中字典更新功能的相关帮助,python,python-2.7,Python,Python 2.7,我想通过一个函数返回一个依赖于if-else条件语句的更新字典。但每次它都返回null值而不是更新的值。我想更新字典并在单行上返回它。为什么更新函数分配空值而不是更新值 def to_json(condition=True): ls = ["abc", "xyz", "123"] dis = { "id": 123, "value": "1122" } if condition is False: return di

我想通过一个函数返回一个依赖于if-else条件语句的更新字典。但每次它都返回null值而不是更新的值。我想更新字典并在单行上返回它。为什么更新函数分配空值而不是更新值

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


print(to_json())
输出: 没有

而不是: {id':123,'value':'1122',Key':['abc',xyz',123']}

函数不返回任何内容,因此通过返回更新dict的调用,您将始终收到

如果在return语句之前将udpate设置为dict,然后返回dict,您应该会看到结果

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())

这并不能回答您的问题,但有一些风格提示:如果条件不成立,请使用
if not condition:
代替
if condition为False:
,使用
dis[“Key”]=ls
代替
dis.update({“Key”:ls})
。谢谢Matt B!我已经找到了答案:“这个.update()方法修改了字典,但不返回任何结果。字典本身被修改了,不需要返回修改过的字典。”