为什么Lista1会被更改,而Lista2不会?哪些方法直接改变列表
def altera(L1, L2):
for elemento in L2:
L1.append(elemento)
L2 = L2 + [4]
L1[1]= 10
del L2[0]
return L2[:]
Lista1 = [1, 2, 3]
Lista2 = [1, 2, 3]
Lista3 = altera(Lista1, Lista2)
print(Lista1)
print(Lista2)
print(Lista3)
Tags:
重新分配L2的地址,使其与传入的列表不同。。。。至少这是一个简单的解释
您可以通过在赋值之前和之后打印
id(L2)
来看到这一点如果你把它改成
那么它确实会改变
Lista2
L2 = L2 + [4]
此语句创建新变量如果将此语句更改为
L2.extend([4])
或L2 += [4]
,则它将更改L2
的值,即[2, 3, 4]
在赋值前后打印
id
的L2
相关问题 更多 >
编程相关推荐