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]

 

posted @ 2022-09-03 05:03  Wayne_Guo  阅读(0)  评论(0)    收藏  举报