python教程_小白入门12
学习目标
P83 列表的浅复制
# 列表的复制
x = [100, 200, 300]
y = x # x和y指向了同一个内存空间,会相互影响,等号是内存地址的赋值
# 调用copy方法,可以复制一个列表
# 这个新列表和原有的列表内容一样,但是指向不同的内存空间
z = x.copy()
print('z', z) # z [100, 200, 300]
x[0] = 1
print('y', y) # y [1, 200, 300]
print('x', x) # x [1, 200, 300]
# 调用copy方法,可以复制一个列表
# 这个新列表和原有的列表内容一样,但是指向不同的内存空间
# 也就是说,我们想把x列表的内容给y,但是又不想y的内容受到后续x的影响,就使用copy()方法
# 也就是只把当前x的值给y,至于后来x怎么变化对y没有影响
# 除了使用列表自带的copy方法意外,还可以使用copy模块实现拷贝
import copy # 报错,TypeError: copy() missing 1 required positional argument: 'x'
# a1 = copy.copy() # 效果等价于x.copy(),都是一个浅拷贝
a2 = x.copy()
# print(a1)
print('a2', a2) # a2 [1, 200, 300]
# 切片其实就是一个浅拷贝
name1 = ['zhangsan', 'lisi', 'wangwu']
name2 = name1[::]
print(name1, name2) # ['zhangsan', 'lisi', 'wangwu'] ['zhangsan', 'lisi', 'wangwu']
name1[0] = 'Tom'
print(name2) #['zhangsan', 'lisi', 'wangwu']
# 那什么是浅拷贝什么是深拷贝