先附上代码:
import copy
x = [1, [2, 3]]
y = x.copy()
z = copy.deepcopy(y)
x[0] = 4
x[1][0] = 5
print(y)
print(z)
输出:
[1, [5, 3]]
[1, [2, 3]]
可见,序列的copy
方法只能实现序列中元素的复制,序列中子序列仍然为引用方式。
而copy
模块中的deepcopy
则同时实现了元素和子序列的复制,在复制序列时可以按需选用两种方式。
先附上代码:
import copy
x = [1, [2, 3]]
y = x.copy()
z = copy.deepcopy(y)
x[0] = 4
x[1][0] = 5
print(y)
print(z)
输出:
[1, [5, 3]]
[1, [2, 3]]
可见,序列的copy
方法只能实现序列中元素的复制,序列中子序列仍然为引用方式。
而copy
模块中的deepcopy
则同时实现了元素和子序列的复制,在复制序列时可以按需选用两种方式。