今天我在我的计算机科学课上,老师在棋盘上放了一段蟒蛇编码,说他无法弄清楚为什么它不起作用。他向我们展示了职能并说:
def app(x):
x.append(" ")
print(x)
def ext(x,y):
x.extend(y)
print(y)
nums = [1,2,3,4,5,6]
numbers = [7,8,9,10]
app(nums)
ext(nums,numbers)
print("End of program")
该代码旨在说明您何时不键入
return x
在函数中然后当你返回主程序时变量不会改变,但是当他运行程序时,第一个函数添加了空格并在返回时保留它,导致打印下面的文本...
['1','2','3','4','5','6',' ']
['1','2','3','4','5','6',' ','7','8','9','10']
End of program
请帮帮我。
答案 0 :(得分:2)
你说的重点是证明列表不会被更改,除非它被返回。那是错误的。该列表是一个可变对象。当您将它(按名称)传递给某个函数并进行更改时,它将被更改。如果您不想要更改,则需要使用副本。
答案 1 :(得分:0)
def app(x):
return x + [" "]
def ext(x,y):
return x + y
可能就是你要做的...我不确定,这不会改变任何一个原始列表,但会返回一个新列表作为结果