X Tutup
Skip to content

Latest commit

 

History

History
98 lines (74 loc) · 2.47 KB

File metadata and controls

98 lines (74 loc) · 2.47 KB
title Python 复制模块 - Python 速查表
description 复制模块包含一组与复制列表、对象、数组等不同元素相关的函数。它可用于创建浅拷贝和深拷贝。
Python 复制模块

Copy 模块是一组与复制列表、对象、数组等不同元素相关的函数。它可用于创建浅拷贝和深拷贝。

来自 Python 3 文档 Python 中的赋值语句不会复制对象,它们会在目标和对象之间创建绑定。对于可变或包含可变项的集合,有时需要复制,以便可以更改一个副本而不更改另一个。此模块提供了通用的拷贝和拷贝操作。

浅拷贝操作

浅拷贝构造一个新的复合对象,然后(在可能的情况下)将指向原始对象中对象的引用插入其中。

copy.copy(x) 返回 x 的浅拷贝。

import copy
a = [[1],[2],[3]]
# 创建浅拷贝(嵌套列表仍被引用)
b = copy.copy(a)

a
[[1], [2], [3]]
b
[[1], [2], [3]]

不导入 copy 模块则无法使用

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'copy' is not defined

深拷贝操作

深拷贝构造一个新的复合对象,然后递归地将原始对象中对象的拷贝插入其中。

copy.deepcopy(x[, memo]) 返回 x 的深拷贝。

import copy
a = [[1],[2],[3]]
# 创建深拷贝(完全独立的对象)
b = copy.deepcopy(a)

# 修改原始对象
a[0][0] = 0
a[1] = None

a
[[0], None, [3]]
b
[[1], [2], [3]]

相关链接

  • Cheatsheet: OOP 基础
  • Cheatsheet: 列表和元组
  • Cheatsheet: 字典
  • Blog: Python 数据类型
  • object()
  • list()
  • dict()
  • slice()
X Tutup