生活不易 我用python大数据 爬虫Python AI Sql我的Python自学之路

Python精品资源汇总:赋值与深浅拷贝!

2018-04-11  本文已影响72人  Python学习

Python当中对于拷贝,分为两种类型。一种是数字和字符串,另一种就是列表、元组、字典等其他类型了。

输出结果是:

2、浅拷贝

查看结果发现,对于深拷贝,数字和字符串在内存当中用的也是同一块地址。这里还是要推荐下小编的Python学习裙:【五 八 八,零 九 零,九 四 二】不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的Python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑

所以综上所述,对于数字和字符串的赋值、浅拷贝、深拷贝在内存当中用的都是同一块地址。原理如下图:

二、Python字典、列表、元组等其他类型的拷贝

1、赋值

举个栗子:

结论:对于python赋值,字典、列表、元组等其他类型用的内存地址不会变化。

2、浅拷贝

举个栗子:

结果:

通过以上结果发现,python进行深拷贝时,python字典里面的第一层和里面嵌套的地址都已经变了。对于深拷贝,它会拷贝多层,将第二层的列表也拷贝一份,如果还有第三层嵌套,那么第三层的也会拷贝,但是对于里面的最小元素,比如数字和字符串,这里就是“wu”,123,“alex”,678之类的,按照python的机制,它们会共同指向同一个位置,它的内存地址是不会变的。原理如下图:

使用python深拷贝的时候,发现只有新的字典的cpu值被修改了,原来的字典里面的cpu值没有变。

上一篇下一篇

猜你喜欢

热点阅读