为什么这个不是赋值替换[6],我理解哪里错了
本帖最后由 爱学习520 于 2020-3-31 13:54 编辑为什么这个不是,不应该是把替换成吗?我哪里理解错了
new和old是关联的呀 你这是重新赋值了 等于old 新赋值上了【6】不是在原有的上进行改变 而是覆盖了 这不是替换。
和贴标签一样,你把new的标签撕下来贴到
上,这时它和old已经没有关系了
内置方法并不会改变标签 new和old不是关联的 python中变量名只是标签而已,可以多个标签指向同一块内存
new=old
意味着new和old这两个标签指向了同一块内存
所以你对new和old指向的数据进行改动,比如列表的pop,sort,reverse等操作都会对两者同时产生作用,因为他们修改了内存中的数据
而你将old重新赋值,意味着old标签指向另外一块内存,从此old和new再无瓜葛 在你还没给old =之前 new 和 old 来源都是 列表 在你将 赋值给了old 之后 new 来源还是而old 来源变成了
这样说能理解嘛哈哈
重新赋值后id 会变不在是原来的id了
python中变量名是标签,你将变量名重新赋值,意味着将这个标签从原来的地址上撕下来贴到新的地址上去了
可以看看我写的帖子
python细节之2、变量名与标签 变量的赋值与修改
BngThea 发表于 2020-3-31 13:56
python中变量名只是标签而已,可以多个标签指向同一块内存
new=old
意味着new和old这两个标签指向了同一 ...
简洁明了,说明问题,谢谢你,最佳答案采纳
页:
[1]