首页 > 代码库 > 深拷贝浅拷贝
深拷贝浅拷贝
一、关于str、list在内存中如何存储的。
1、str 一次性创建只要修改其内存位置就会改变,且要给新的值一个新的变量。(字符串的内容都储存在同一个内存的位置,如果索引两个不同的字符串,其id地址一样)
2、list 因其内部关系是链表式 所以可以增删改 其变量的内存位置仍然不会改变,且其内部相同的值也指向同一处内存。
二、拷贝copy
1、特性:拷贝过来的值,其id和老的id同指一处内存地址。
2、数字及字符串的copy(深浅copy 对于int、str 效果是一样的):
数字及字符串的copy,它们新老变量的id地址永远一致。
老师讲解时提到,数字、字符串赋值,它们的id地址也不变, 我认为他们变或者不变是根据他们的值所决定的,在电脑内存中python有一个规定的范围,只要你的值是在这个规定的范围内,那么只要你们的值相同,变量不同,你们的id地址也是指向同一处的,相反超出这个范围,id地址是不同的。
3、深浅拷贝copy:
特性:适用于 在拥有多层关系的tuple、list、dict中。
浅拷贝:例如、b是a的浅拷贝,那么b和a的变量内存地址是不相同的,但是b和a的变量内部值的内存地址是相同的。
深拷贝:变量和其内部值内存地址都是相同的。
浅拷贝
深拷贝
深拷贝浅拷贝
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。