Python基础系列-copy和deepcopy

简介: 版权声明:如需转载,请注明转载地址。 https://blog.csdn.net/oJohnny123/article/details/81980698 #!/usr/bin/python# -*- coding: UTF-8 -*-"""Created by liaoyangyang1 on 2018/8/23 下午1:41."""# 简单来说,就是copy出来的对象cp1,如果demo改了他会跟着改。
版权声明:如需转载,请注明转载地址。 https://blog.csdn.net/oJohnny123/article/details/81980698
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
Created by liaoyangyang1 on 2018/8/23 下午1:41.
"""


# 简单来说,就是copy出来的对象cp1,如果demo改了他会跟着改。但是deepcopy 出来的 cp2还是原来的值



import copy
demo2 = demo = [1, 2, [3, 4]] #origin 里#边有三个元素:1, 2,[3, 4]
cp1 = copy.copy(demo)
cp2 = copy.deepcopy(demo)

print(id(demo))
print(id(cp1))
print(id(cp2))

print(cp1)
print(cp2)

print(cp1 == cp2)
print(cp1 is cp2 )
print(cp1 is demo )
print(cp2 is demo )
print(demo2 is demo )

print('='*100)
#cp1 和 co2 看上去相同,但#已不再是同一个object
#把demo内的子list [3, 4] 改掉了#一个元素,观察到 cp1 和 #cp2的变化如下所示:
demo2[2][0] = "hi"
demo =[1, 2, ['hi', 4]]


print(cp1)
print(cp2)

 

目录
相关文章
|
2月前
|
API Python
python中copy模块的使用,深拷贝和浅拷贝
python中copy模块的使用,深拷贝和浅拷贝
16 0
|
3月前
|
数据处理 Python
【Python】已解决:SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFram
【Python】已解决:SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFram
281 1
|
3月前
|
Python
Python 中浅拷贝(copy)和深拷贝(deepcopy)
Python 中浅拷贝(copy)和深拷贝(deepcopy)
|
5月前
|
Python
|
5月前
|
算法 索引 Python
leetcode-138:复制带随机指针的链表 (python中copy与deepcopy区别)
leetcode-138:复制带随机指针的链表 (python中copy与deepcopy区别)
60 0
|
索引 Python
Python集合 (set) 的增删改查及 copy()方法
集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。
120 0
|
Python
python编程比较copy方法与deepcopy方法,教你如何深度复制字典?
python编程比较copy方法与deepcopy方法,教你如何深度复制字典?
|
Python
python深度复制字典,copy方法与deepcopy方法
python深度复制字典,copy方法与deepcopy方法
153 0
|
Java Python
Python基础 | 深浅拷贝问题、递归函数练习
在实际工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题。为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用。为了生成这个副本,就产生了拷贝。下面先了解一下几个概念:对象、可变类型、引用
248 0
Python基础 | 深浅拷贝问题、递归函数练习
|
Python
python——基础练习(五)
python——基础练习(五)
129 0
python——基础练习(五)
下一篇
无影云桌面