今天写 python 代码时突然遇到了一个一直找不到的 bug ,经过 print 函数 debug 大法后发现某个被我当做常量的列表不知道为什么被修改了,我尝试运行下面代码才发现了原因,原来 python 语言中列表的赋值类似于 C 语言中的指针,当直接用 b = a 将 a 的值赋给 b 后,我们修改列表 b ,同时也会修改列表 a :
a = [1,2,3,4]
b = []
b = a
b.remove(1)
print(a)
以上代码得到的结果是:
[2, 3, 4]
以前一直没注意,今天写下来做备忘用。