这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战
🐍列表复制
数据是在编程逻辑中经常遇到的,复制意味着产生了数据的副本。大量数据在工作中其实也需要备份。列表的功能就是能够把大量的数据放在一起,但列表里的数据是可以进行增删改查的,数据一旦发生了变化,就不能回复到原来的样子了。如果还需要对原来的数据进行查验,没有备份就很难做到了。
- 深复制
使用深复制需要导入copy模块,使用deepcopy()方法完成。代码如下:
import copy
xiyouji = ["唐僧",["孙悟空","猪八戒","沙和尚"]]
another_xiyouji = copy.deepcopy(xiyouji)
print("原始西游记:"+str(xiyouji))
print("复制西游记:"+str(another_xiyouji))
another_xiyouji[0] = "唐三藏"
print("修改第一层内容后")
print("原始西游记:"+str(xiyouji))
print("复制西游记:"+str(another_xiyouji))
another_xiyouji[1][0] = "齐天大圣"
another_xiyouji[1][1] = "猪悟能"
another_xiyouji[1][2] = "沙悟净"
print("修改第二层内容后")
print("原始西游记:"+str(xiyouji))
print("复制西游记:"+str(another_xiyouji))
运行结果如下:
由结果可以看出,把第一个列表的人物深复制后,深复制的列表数据更改后并没有影响到原始列表。深复制就是为列表的复制一直开辟新的内存空间。深复制后在内存中的保存形式如下图:
由此可以看出,深复制不仅在第一层开辟了新的内存地址,在第二层也同样开辟了新的内存地址,直到当前的内容指向的不再是一个地址,而是一个数值。
今天的内容就到这里,拜了个拜~