【Python】对List列表进行append操作时尽量使用深拷贝


问题描述

在编写 Python 代码时,对同一名称的变量进行初始化,并 append 到某一列表。检查时发现,获得的列表所有元素都是刚初始化后的变量数据。


原因分析:

>> append方法是浅拷贝
在 Python 中,对象赋值实际上是对象的引用,当创建一个对象,然后把它赋值给另一个变量的时候,Python 并没有拷贝这个对象,而只是拷贝了这个对象的引用。


解决方案:

使用深拷贝写入数据 list.append(copy.deepcopy(item))

其中,list为列表名称,item为数据名称。


参考资料:
[1] 《Python进阶系列》二十九:append浅拷贝机制——你真的会用append函数吗?

猜你喜欢

转载自blog.csdn.net/weixin_56917387/article/details/129277391