Python的深拷贝与浅拷贝
set、dict、list复制之后,并没有把内存复制走,只是起了一个别名,所有的复制都指向一个内存。所以,当对其中一个名字的序列去操作,所有的都会有变化。
运行结果S
[‘a’, ‘b’, ‘c’, ‘d’] [‘a’, ‘b’, ‘c’, ‘d’]
1947385383176 1947385383176
列表直接复赋值给列表不属于拷贝, 只是内存地址的引用
浅拷贝
只会拷贝第一层,第二层内容不被拷贝。内存是一样。
运行结果:
运行结果
[‘a’, ‘b’, ‘c’, [1, 2, 3, 4]] [‘a’, ‘b’, ‘c’, [1, 2, 3, 4]]
1386655149640 1386655185672
深拷贝
显示结果都不一样,把元素内部的元素完全进行拷贝复制。
运行结果
[‘a’, ‘b’, ‘c’, [1, 2, 3, 4]] [‘a’, ‘b’, ‘c’, [1, 2, 3]]
1452762592904 1452762606664