在Python中,列表变量可以直接进行赋值,如下:
a = [1,2,3,4] b = a print(b)
结果会显示 [1,2,3,4]
字符串也是一样的可以赋值,但是Python中并不是将列表或字符串复制一份再传给新变量,而是传地址
例如:
a = [1,2,3,4] b = a a[0] = 5 print(a) print(b)
结果会显示
[5,2,3,4]
[5,2,3,4]
可以看到 b 会随着 a 改变
如果不知道这个性质的话,写程序时会出现莫名其妙的bug
如果要复制一份 a 传给 b ,可以用以下代码
a = [1,2,3,4] b = a[:] a[0] = 5 print(a) print(b)
此时输出为
[5,2,3,4]
[1,2,3,4]
这种方法就是将 a 复制了一份传给 b
当然,基本只在列表中用到,字符串是不允许修改的,也就不会出现上面的问题
a = 'hello' a[0] = 'H' #这里将会报错,字符串不允许修改