1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > linux浅拷贝和深拷贝 关于 Python 深拷贝与浅拷贝

linux浅拷贝和深拷贝 关于 Python 深拷贝与浅拷贝

时间:2021-11-17 11:38:38

相关推荐

linux浅拷贝和深拷贝 关于 Python 深拷贝与浅拷贝

Python的数据结构总体分为两类:

1、字符串和数字

2、列表、元组、字典等

一、字符串和数字

对于字符串和数字而言,赋值(=)、浅拷贝(copy)和深拷贝(deepcopy)其实都没有意义,因为它们都永远指向同一个内存地址。

如图:

二、列表、元组、字典等

对于列表、字典而言,进行赋值(=)、浅拷贝(copy)和深拷贝(deepcopy),其引起的变化是不一样的。

2.1、赋值(=)

如图:

这和字符串和数字是不一样的,当我们定义 a =1 ,b = a ,改变a时,b是不会有变化的。列表和字典等会跟着变化,因为他们的内存地址是一样的。

2.2、浅拷贝(copy)

我们接下来看:

我们通过打印的内存地址可以明显看出,整个外层列表的内存地址是不一样的,但是里层的列表内存地址是一致的。

如图:

总结:浅拷贝(copy.copy(x))只是将列表等数据类型的第一层copy了一下,内存地址改变了。但是对于里层的数据类型的内存地址没有改变。

2.3、深拷贝(deepcopy)

深拷贝(copy.deepcopy(x))其实就是重新开辟了一个新的内存地址,存储deepcopy后的数据,和原来数据的内存地址完全不一样了,包括里层数据类型的内存地址。

如图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。