python 在循环中使用list.append(list)后面会覆盖前面的解决方法
我在使用循环中使用list.append(listA) 时(listA是全局变量在循环外声明,每次append后将listA.clear()),发现最后一次append的内容会将前面的全部覆盖,也就是最后一次append时,listA=[1,2,3] 那么list里面全部变成了[[1,2,3],[1,2,3]…]
这是因为append时,listA的内存地址并没有变,所以list在更新后,所有元素全都变成了listA的当前值。
解决方案: temp_list = listA[:] list.append(temp_list)
如果还有不明白的,可以搜索一下关于python赋值、深浅拷贝相关概念