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)

 

目录
相关文章
|
4月前
|
API Python
python中copy模块的使用,深拷贝和浅拷贝
python中copy模块的使用,深拷贝和浅拷贝
42 0
|
5月前
|
数据处理 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
716 1
|
5月前
|
Python
Python 中浅拷贝(copy)和深拷贝(deepcopy)
Python 中浅拷贝(copy)和深拷贝(deepcopy)
|
7月前
|
Python
|
7月前
|
算法 索引 Python
leetcode-138:复制带随机指针的链表 (python中copy与deepcopy区别)
leetcode-138:复制带随机指针的链表 (python中copy与deepcopy区别)
73 0
|
索引 Python
Python集合 (set) 的增删改查及 copy()方法
集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。
141 0
|
Python
python编程比较copy方法与deepcopy方法,教你如何深度复制字典?
python编程比较copy方法与deepcopy方法,教你如何深度复制字典?
102 0
|
Python
python深度复制字典,copy方法与deepcopy方法
python深度复制字典,copy方法与deepcopy方法
164 0
|
13天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!