python 浅拷贝与深拷贝

本文最后更新于:2022年11月19日 下午

浅拷贝

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 第一种
In [1]: x = [1,2,3]

In [2]: y = x.copy()

In [3]: x[1] = 1

In [4]: x
Out[4]: [1, 1, 3]

In [5]: y
Out[5]: [1, 2, 3]

# 第二种
In [6]: x = [1,2,3]

In [7]: y = x[:]

In [8]: x[1] = 1

In [9]: x
Out[9]: [1, 1, 3]

In [10]: y
Out[10]: [1, 2, 3]

# 第三种
In [11]: x = [[1,2,3],[4,5,6],[7,8,9]]

In [12]: y = x.copy()

In [13]: x[1][1] = 0

In [14]: x
Out[14]: [[1, 2, 3], [4, 0, 6], [7, 8, 9]]

In [15]: y
Out[15]: [[1, 2, 3], [4, 0, 6], [7, 8, 9]]

# 第四种
In [16]: import copy

In [17]: x = [[1,2,3],[4,5,6],[7,8,9]]

In [18]: y = copy.copy(x)

In [19]: x[1][1] = 0

In [20]: x
Out[20]: [[1, 2, 3], [4, 0, 6], [7, 8, 9]]

In [21]: y
Out[21]: [[1, 2, 3], [4, 0, 6], [7, 8, 9]]

深拷贝

1
2
3
4
5
6
7
8
9
10
11
In [22]: x = [[1,2,3],[4,5,6],[7,8,9]]

In [23]: y = copy.deepcopy(x)

In [24]: x[1][1] = 0

In [25]: x
Out[25]: [[1, 2, 3], [4, 0, 6], [7, 8, 9]]

In [26]: y
Out[26]: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

python 浅拷贝与深拷贝
https://simple2ich4n.top/21356/
作者
2ich4n
发布于
2022年6月30日
更新于
2022年11月19日
许可协议