python中的深拷贝和浅拷贝(面试题)
一、浅拷贝
定义:浅拷贝只是对另外一个变量的内存地址的拷贝,这两个变量指向同一个内存地址的变量值。
浅拷贝的特点:
- 公用一个值;
- 这两个变量的内存地址一样;
- 对其中一个变量的值改变,另外一个变量的值也会改变;
>>> a=[11,22,33] >>> b=a >>> id(a) 40488632 >>> id(b) 40488632 >>> a is b True >>> a.append(44) >>> a [11, 22, 33, 44] >>> b [11, 22, 33, 44] >>>
二、深拷贝:
定义:一个变量对另外一个变量的值拷贝。
深拷贝的特点:
- 两个变量的内存地址不同;
- 两个变量各有自己的值,且互不影响;
- 对其任意一个变量的值的改变不会影响另外一个;
>>> import copy >>> a=[11,22,33] >>> b=copy.deepcopy(a) >>> a [11, 22, 33] >>> b [11, 22, 33] >>> id(a) 40489528 >>> id(b) 40505392 >>> a.append(44) >>> a [11, 22, 33, 44] >>> b [11, 22, 33] >>>
本文来自博客园,作者:热爱技术的小牛,转载请注明原文链接:https://www.cnblogs.com/my-blogs-for-everone/p/8336161.html