我正在尝试了解运行以下代码时发生的情况:
def modif(l1,l2):
l1[:] = l2
y=[1,2,[3,4]]
x=[0 for i in y]
print(modif(x,y))
print(x)
print(y)
我对语言的理解(谦虚)表明函数中发生的修改不适用于语言环境范围之外,但会返回以下内容:
None
[1, 2, [3, 4]]
[1, 2, [3, 4]]
同时,以下代码:
def modif(l1,l2):
l1 = l2
y=[1,2,[3,4]]
x=[0 for i in y]
print(modif(x,y))
print(x)
print(y)
返回以下内容:
None
[0, 0, 0]
[1, 2, [3, 4]]
我不明白为什么x会在全局范围内发生变化。