相思资源网 Design By www.200059.com
这篇文章主要介绍了python中的引用和拷贝实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一.引用
a = ['a', 'b', 'c'] b = a print(id(a)) print(id(b)) 135300560 135300560
可以看到,变量a 和 b 的 id是完全一样的,这就说明a和b是同时指向内存的同一个区域的,即b随a的变化而变化.
a = ['a', 'b', 'c'] b = a a[1] = 'd' print(b) b[2] = 'e' print(a) ['a', 'd', 'c'] ['a', 'd', 'e']
二.浅拷贝
浅拷贝只是复制了的父对象,即复制后的变量和复制前的子对象还是指向同一个对象
浅拷贝可以写为 copy.copy(obj) 或者 obj.copy()
import copy a = ['a', 'b', ['c', 'd', 'e']] b = copy.copy(a) a.append('e') print(b) a[0] = 'g' print(b) a[2].append('f') print(b) ['a', 'b', ['c', 'd', 'e']] ['a', 'b', ['c', 'd', 'e']] ['a', 'b', ['c', 'd', 'e', 'f']]
画个图来理解就是如下:
当只有a元素的子元素里的元素有变化时,b才会引起改变
三.深拷贝
深拷贝就比较好理解了,它相当于开辟了一个新空间是新指针指向新的空间,无论原对象怎么变化,新对象都不变
import copy a = ['a', 'b', ['c', 'd', 'e']] b = copy.deepcopy(a) a.append('e') print(b) a[0] = 'g' print(b) a[2].append('f') print(b) ['a', 'b', ['c', 'd', 'e']] ['a', 'b', ['c', 'd', 'e']] ['a', 'b', ['c', 'd', 'e']]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
python,引用,拷贝
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无Python中的引用和拷贝实例解析的评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。