SyntaxError 试图返回赋值的值
Posted
技术标签:
【中文标题】SyntaxError 试图返回赋值的值【英文标题】:SyntaxError trying to return the value of assignment 【发布时间】:2018-10-16 02:25:45 【问题描述】:假设我有一个带有列表参数的函数,并且在它的主体内我想通过这段代码修改传递的列表:
spy = [0,0,7]
def replace_spy(lista):
return lista[2]=lista[2]+1
但它显示错误:SyntaxError: invalid syntax
【问题讨论】:
另见:Assignment inside lambda expression in Python - Stack Overflow 【参考方案1】:赋值是一个语句,而不是一个表达式。它没有价值。所以你不能return
赋值的值。
在所有允许允许这种事情的语言中,返回值究竟应该是什么是模棱两可的,但它们中的大多数——包括 C 和许多源自 C 或受 C 启发的语言——都会给出你lista[2]
1 的新值。所以大概你想要这个:
def replace_spy(lista):
lista[2]=lista[2]+1
return lista[2]
如果您希望缩短内容,这会减少击键次数,并且可能更具可读性:
def replace_spy(lista):
lista[2] += 1
return lista[2]
1。作为“左值”,但这在 Python 中没有意义。
【讨论】:
为了进一步缩短击键,OP 需要完全摆脱该功能,只需执行lista[2] += 1
:D
@cᴏʟᴅsᴘᴇᴇᴅ 嗯,是的,但是让我们假设这是一个稍微不那么琐碎的功能的 MCVE……以上是关于SyntaxError 试图返回赋值的值的主要内容,如果未能解决你的问题,请参考以下文章
C语言问题 赋值表达式返回值是啥?比如j=0这个表达式的返回值是啥?
excel中给单元格赋值,判断后返回另外一个值,覆盖原来的值。