python的list之间相互赋值的陷阱

在python中List是引用类型,直接复制的时候是浅拷贝,改变了原来变量的值幅值之后的也会改变,所以要么深拷贝,要么重新申明,切记切记

以下代码是踩过的坑,谨记谨记!!!

lst_1 = []
lst_2 = []
for i in range(5):
    lst_2.clear()
    lst_2.append(i)
    lst_1.append(lst_2)
lst_1

上面代码的结果是[[4],[4],[4],[4]]

lst_1 = []
lst_2 = []
for i in range(5):
    lst_2 = []
    lst_2.append(i)
    lst_1.append(lst_2)
lst_1

这段代码的结果才是正确的[[1],[2],[3],[4]]


版权声明:本文为github_34777264原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。