python拷贝

赋值

1
2
a = [1,2,3]
b = a
  • a和b指向的是同一个对象
  • 修改b[0]会影响a[0]
  • 用于两个变量共享一个对象

浅拷贝

1
2
3
4
5
6
7
import copy
a = [[1,2],[3,4]]
b = copy.copy(a) # 方法一:copy模块
c = a[:] # 方法二:切片
d = list(a) # 方法三:构造函数
e = [row for fow in a] #方法四:列表推导

  • 创建了新的外层列表对象
  • 内部的子对象(如[1,2],[3,4])仍然是同一个引用
1
2
b[0][0] = 99
print(a[0][0]) # 输出99

深拷贝

1
2
3
import copy
a = [[1, 2], [3, 4]]
b = copy.deepcopy(a)
  • 不仅复制了外层列表,还递归复制了所有子对象
  • b 完全独立于 a,互不影响
1
2
b[0][0] = 99
print(a[0][0]) # 输出 1

赋值

1
2
a = [1,2,3]
b = a
  • a和b指向的是同一个对象
  • 修改b[0]会影响a[0]
  • 用于两个变量共享一个对象

浅拷贝

1
2
3
4
5
6
7
import copy
a = [[1,2],[3,4]]
b = copy.copy(a) # 方法一:copy模块
c = a[:] # 方法二:切片
d = list(a) # 方法三:构造函数
e = [row for fow in a] #方法四:列表推导

  • 创建了新的外层列表对象
  • 内部的子对象(如[1,2],[3,4])仍然是同一个引用
1
2
b[0][0] = 99
print(a[0][0]) # 输出99

深拷贝

1
2
3
import copy
a = [[1, 2], [3, 4]]
b = copy.deepcopy(a)
  • 不仅复制了外层列表,还递归复制了所有子对象
  • b 完全独立于 a,互不影响
1
2
b[0][0] = 99
print(a[0][0]) # 输出 1
文章作者: 章鱼哥🐙
文章链接: http://octopus-go.top/2025/05/14/python%E6%8B%B7%E8%B4%9D/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 章鱼哥的家
avatar
章鱼哥🐙
酷的像风,野的像狗
Follow Me
骗你的,他看不到哦💔