10、Python基础夯实——数据的常用操作
数据拷贝
数据引用产生的问题(1)
- 下面的代码会发生什么情况呢?
L1 = [1,2[3,4,5]] L2 = L1 L2[0] = 6 print('L1':L1) print('L2':L2) 输出: L1: [6,2,[3,4,5]] L2: [6,2,[3,4,5]]
数据引用产生的问题(2)
在Python中变量名是对于数据的引用。
-L2=L1,只是将L2指向了L1所指向的地址。

问题依然存在
L1 = [1,2[3,4,5]] L2 = L1 L2[0] = 6 print('L1':L1) print('L2':L2) 输出: L1: [6,2,[3,4,5]] L2: [6,2,[3,4,5]]
深拷贝和浅拷贝
- 在Python中对于数据的拷贝形式的不同可以分为深拷贝和浅拷贝;
- 浅拷贝(copy()),即对数据的表面结构进行拷贝,如果数据为嵌套的结构,则嵌套里面的元素是对之前数据的引用。修改之前的数据会影响拷贝得到的数据。
- 深拷贝,解决了嵌套结构中深层结构只是引用的问题,他会对所有的数据进行一次复制,修改之前的数据则不会改变拷贝得到的数据。
- 实现深拷贝,导入Python中copy模块,使用模块中的deepcopy()方法。
import copy L1 = [1,2,[3,4,5]] L2 = copy.deepcopy(L1) L2[2][0] = 6 print('L1:',L1) pint('L2:',L2) L1:[1,2,[3,4,5] L2:[1,2,[6,4,5]

浙公网安备 33010602011771号