首页 > 互联资讯 > 技术交流  > 

Python append() 与深拷贝、浅拷贝( 结构体变量和结构体类型的定义)

Python append() 与深拷贝、浅拷贝( 结构体变量和结构体类型的定义) 深浅拷贝

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

在 Python 中,为了使当进行赋值操作时,两个变量互补影响,可以使用 copy 模块中的 deepcopy 方法,称之为深拷贝。

append() 函数

当 list 类型的对象进行 append 操作时,实际上追加的是该对象的引用。

id() 函数:返回对象的唯一标识,可以类比成该对象在内存中的地址。

>>>alist = []>>> num = [2]>>> alist.append( num )>>> id( num ) == id( alist[0] )True如上例所示,当 num 发生变化时(前提是 id(num) 不发生变化),alist 的内容随之会发生变化。往往会带来意想不到的后果,想避免这种情况,可以采用深拷贝解决:alist.append( copy.deepcopy( num ) )

原文地址:blog.csdn.net/u010099495/article/details/50276833

Python append() 与深拷贝、浅拷贝( 结构体变量和结构体类型的定义)由讯客互联技术交流栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Python append() 与深拷贝、浅拷贝( 结构体变量和结构体类型的定义)