def list_function(x):
return x[1] += 3
我想这样做,但显然我做不到。我知道我可以做到这一点
x[1] += 3
return x
但是,我想把它保持在一条线上。返回总是需要在自己的行上,如果没有,为什么需要在这种特殊情况下呢?
答案 0 :(得分:2)
你可以在return语句后面有一个任意的表达式,即产生一个返回值的东西。赋值,包括x[1] += 3
等增强赋值,是Python中的注释表达式。它们是陈述,因此不会产生价值,因此无法在return
之后使用它们。
如果你坚持让一切都在一条线上,你当然可以写
x[1] += 3; return x
但是,我无法找到任何有效理由。
答案 1 :(得分:1)
return_stmt :: =“return”[expression_list]
return语句后面只能跟表达式。 expression_list
是 -
expression_list :: = expression(“,”expression)* [“,”]
但是x[1] += 1
是augmented assignment statement,因此在return
之后你无法拥有它。