Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:lst[(lst.index(“搜索词”)]=函数体中的文章vs.返回_Python_Function_Return Value - Fatal编程技术网

Python:lst[(lst.index(“搜索词”)]=函数体中的文章vs.返回

Python:lst[(lst.index(“搜索词”)]=函数体中的文章vs.返回,python,function,return-value,Python,Function,Return Value,Python 3.7: 为什么以下代码可以工作(关注函数): 但不是这个: shelf = ["Zaubersäge", "leer", "Wunderkekse", "Trickarten", "leer"] def add_shelf(article): return (shelf[(shelf.index("leer"))] = article) add_shelf("Rubik's Cube") print(shelf) 不能在return语句中赋值。例如,return f

Python 3.7:

为什么以下代码可以工作(关注函数):

但不是这个:

shelf = ["Zaubersäge", "leer", "Wunderkekse", "Trickarten", "leer"]

def add_shelf(article):
    return (shelf[(shelf.index("leer"))] = article)

add_shelf("Rubik's Cube")
print(shelf)

不能在
return
语句中赋值。例如,
return foo=1
无效。我认为一般来说,你不能把一个陈述放在一个陈述中,但这是离题的


您希望发生什么?

谢谢toolic。我发现我在Azure上的Python版本不喜欢parenthsis这样的语句:(shelf[(shelf.index(“leer”))]=article)。如果它是函数体的一部分,则运行时不带括号。但是它在return语句中不运行parenthis if。所以我把它封起来了,但它不起作用。只有在你的评论之后,我才仔细检查并发现我的复制粘贴错误。但问题出现了。我不能将语句shelf[(shelf.index(“leer”))]=文章作为return语句的一部分,例如:“return shelf[(shelf.index(“leer”))]=文章。”谢谢。等号(赋值语句)return语句中的无效。您希望发生什么?顺便说一句,欢迎使用堆栈溢出!检查。其目的是替换元素“leer”的第一次出现在函数中接收一个值。我不是想得到更好的想法,比如列表理解等。我发现Python不喜欢括号中的术语,如果在函数体或返回语句中:(shelf[(shelf.index(“leer”)]=article)。我只是在return语句中首先注意到了这种行为,因为我认为这会使1行程序正常工作。但事实并非如此。明白了。如果需要使函数成为一行程序,只需去掉
return
语句,因为函数在Python中隐式返回。顺便说一句,“leer”显然意味着“empty”在德语中,我建议改为在列表中使用
None
,因为它是专门为哨兵值而构建的。功能上没有区别,但更清晰,可以为大型列表节省内存。
shelf = ["Zaubersäge", "leer", "Wunderkekse", "Trickarten", "leer"]

def add_shelf(article):
    return (shelf[(shelf.index("leer"))] = article)

add_shelf("Rubik's Cube")
print(shelf)