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中给单元格赋值,判断后返回另外一个值,覆盖原来的值。

return的值是一个赋值表达式时,返回的是右边的值

如何将Ext.Ajax.request请求 返回的值赋值给全局变量

你可以在救援修饰符中放置多个赋值吗?