• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

关闭

返回栏目

关闭

返回python栏目

78 - 自带库 - copy - 复制、前复制、深复制

作者:

贺及楼

成为作者

更新日期:2024-11-25 21:39:17

cope - 复制、前复制、深复制

copy库简介

Python 的 copy 库提供了浅拷贝和深拷贝功能,用于复制对象。浅拷贝只复制对象本身,而深拷贝则复制对象及其包含的所有子对象。这个库对于创建对象副本、避免共享可变对象带来的副作用非常有用。它在数据处理、对象克隆和备份时提供了灵活的操作,是处理对象复制时的重要工具。

复制

  1. a = [1,2,[3,4]]
  2. b = a
  3. print("直接赋值:")
  4. print("a:",a)
  5. print("b:",b)
  6. print("第一次改变:")
  7. a[1] = 666
  8. print("a:",a)
  9. print("b:",b)
  10. print("第二次改变:")
  11. a[2][0] = 777
  12. print("a:",a)
  13. print("b:",b)
  14. 输出:
  15. 直接赋值:
  16. a: [1, 2, [3, 4]]
  17. b: [1, 2, [3, 4]]
  18. 第一次改变:
  19. a: [1, 666, [3, 4]]
  20. b: [1, 666, [3, 4]]
  21. 第二次改变:
  22. a: [1, 666, [777, 4]]
  23. b: [1, 666, [777, 4]]

浅拷贝:

  1. a = [1,2,[3,4]]
  2. b = a.copy()
  3. print("浅拷贝:")
  4. print("a:",a)
  5. print("b:",b)
  6. print("第一次改变:")
  7. a[1] = 666
  8. print("a:",a)
  9. print("b:",b)
  10. print("第二次改变:")
  11. a[2][0] = 777
  12. print("a:",a)
  13. print("b:",b)
  14. 输出:
  15. 浅拷贝:
  16. a: [1, 2, [3, 4]]
  17. b: [1, 2, [3, 4]]
  18. 第一次改变:
  19. a: [1, 666, [3, 4]]
  20. b: [1, 2, [3, 4]]
  21. 第二次改变:
  22. a: [1, 666, [777, 4]]
  23. b: [1, 2, [777, 4]]

深拷贝:

  1. import copy
  2. a = [1,2,[3,4]]
  3. b = copy.deepcopy(a)
  4. print("深拷贝:")
  5. print("a:",a)
  6. print("b:",b)
  7. print("第一次改变:")
  8. a[1] = 666
  9. print("a:",a)
  10. print("b:",b)
  11. print("第二次改变:")
  12. a[2][0] = 777
  13. print("a:",a)
  14. print("b:",b)
  15. 输出:
  16. 深拷贝:
  17. a: [1, 2, [3, 4]]
  18. b: [1, 2, [3, 4]]
  19. 第一次改变:
  20. a: [1, 666, [3, 4]]
  21. b: [1, 2, [3, 4]]
  22. 第二次改变:
  23. a: [1, 666, [777, 4]]
  24. b: [1, 2, [3, 4]]