【发布时间】:2022-01-16 19:41:56
【问题描述】:
美好的一天,精彩的 Stack Overflow 社区。当作为字典输入时,我注意到关于 Python 函数的一个有趣行为。
当我们使用空列表作为默认参数时,我们可以在附加一些值的同时返回该列表。
def func_list(value,input=[]):
return input.append(value)
当空字典作为参数时,我希望同样的事情适用。如:
def func_dict(value,input={}):
return input[value] = value
但是,Python 会引发语法错误,我只能执行以下操作:
def func_dict(value,input={}):
input[value] = value
return input
我想知道为什么?非常感谢!
PS。请随时修改问题,如果我的问题表达不够清楚,请见谅!
【问题讨论】:
-
您不能使用“=”作为回报。在这种情况下,列表也会引发异常: def func_list(value,input=[]): return input[0] = value
-
非常感谢您的回答!实际上 input[value] = xxx 在这种情况下是一个语句。并且 Python 不能返回语句。就像@vaizki 建议的那样!
-
附带说明一下,Python 现在有通过
:=“walrus”运算符的赋值表达式。因此,您可以将许多赋值语句转换为表达式,但dict没有海象赋值语法(至少现在还没有)。
标签: python list function dictionary return