python中最容易犯的错误

a=[1,2,3,4,5]
b=a
a[0]=6
print(a)
print(b)

输出结果是:

[6, 2, 3, 4, 5]
[6, 2, 3, 4, 5]

明明只修改了a列表,为什么b列表也会一起变呢?因为b=a这样写,b是对a的引用,无论修改a还是b,他们都会跟着一起变

 

把一个列表给另一个列表的正确方法是:

a=[1,2,3,4,5]
b=a[:]
a[0]=6
print(a)
print(b)

a=[1,2,3,4,5]
b=a.copy()
a[0]=6
print(a)
print(b)