python_深拷贝与浅拷贝
Posted xiaokuangnvhai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python_深拷贝与浅拷贝相关的知识,希望对你有一定的参考价值。
一、深拷贝和浅拷贝的区分
深拷贝:A变量变化,B变量不受影响
浅拷贝:A变量变化,B变量跟着改变
常见的深拷贝和浅拷贝
浅拷贝: 赋值 l=list1 ,l和list1指向的同一块内存,两者一起变化
深拷贝:定义 l=[1,2,3] 切片赋值 l=list1[:] 深度复制 l=copy.deepcopy(list1)
程序举例:
1、赋值
list1=[1,2,3,4] #定义 list2=list1 #直接赋值给list2,两者内存指向一个位置 for i in list1: if i%2: #奇数移除 list1.remove(i) print(list1) print(list2) D:\\study\\python\\test\\venv\\Scripts\\python.exe D:/study/python/test/dd.py [2, 4] [2, 4]
2、切片赋值
list1=[1,2,3,4] #定义 list2=list1[:] #切片赋值,两者指向不同内存地址 for i in list1: if i%2: #奇数移除 list1.remove(i) print(list1) print(list2) D:\\study\\python\\test\\venv\\Scripts\\python.exe D:/study/python/test/dd.py [2, 4] [1, 2, 3, 4]
3、深度复制
import copy list1=[1,2,3,4] #定义 list2=copy.deepcopy(list1)#深度复制,两者指向不同内存地址 for i in list1: if i%2: #奇数移除 list1.remove(i) print(list1) print(list2) D:\\study\\python\\test\\venv\\Scripts\\python.exe D:/study/python/test/dd.py [2, 4] [1, 2, 3, 4]
4、定义
list1=[1,2,3,4] #定义 list2=[1,2,3,4] #深度复制,两者指向不同内存地址 for i in list1: if i%2: #奇数移除 list1.remove(i) print(list1) print(list2) D:\\study\\python\\test\\venv\\Scripts\\python.exe D:/study/python/test/dd.py [2, 4] [1, 2, 3, 4]
以上是关于python_深拷贝与浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章