杭州网帮你
python深拷贝deep copy 和浅拷贝 shallow copy说明
时间:2019-09-08 01:38:02 浏览:106

深拷贝 deep copy 和浅拷贝 shallow copy

浅拷贝 shallow copy
 L = [3.1, 3.2]
 L1 = [1, 2, L]
 L2 = L1.copy()  # 浅拷贝,只复制一层
 print(L1)  # [1, 2, [3.1, 3.2]]
 print(L2)  # [1, 2, [3.1, 3.2]]
 L[0] = 3.14
 print(L1)  # [1, 2, [3.14, 3.2]]
 print(L2)  # [1, 2, [3.14, 3.2]]

 说明:
   浅拷贝是指在复制过程中,只复制一层变量,不会复制深层变量绑定的对象的复制过程

深拷贝
 对所有可变对象进行层层复制,实现对象的各自独立
 例:

 import copy  # 导入复制模块
 L = [3.1, 3.2]
 L1 = [1, 2, L]
 L2 = copy.deepcopy(L1)  # 实现深拷贝
 print(L1)  # [1, 2, [3.1, 3.2]]
 print(L2)  # [1, 2, [3.1, 3.2]]
 L[0] = 3.14
 print(L1)  # [1, 2, [3.14, 3.2]]
 print(L2)  # [1, 2, [3.1, 3.2]] #此列表不受影响

列表推导式 list comprehesion
 列表推导式是用可迭代对象依次生成带有多个元素的列表的表达式

 作用:
   用简易方法生成列表
 语法:
   [表达式 for 变量 in 可迭代对象]
   或
   [表达式 for 变量 in 可迭代对象 if 真值表达式]
 示例:
   # 生成一个列表,此列表内的数值是1~9的方平
   L = [x ** 2 for x in range(1, 10)]

   # 以前的方法:
   L = []
   for x in range(1, 10):
       L.append(x ** 2)

[上一篇]python字典推导式语法说明示例
[下一篇]python3 range函数练习示例
Copyright 2022 © 93580.com.cn 网帮你

2022 © 版权所有 红花岗区网帮你信息技术工作室

工信部备案号:黔ICP备2024036985号-2

请使用网帮你微信扫码登录