鱼C论坛

 找回密码
 立即注册
查看: 2386|回复: 6

[已解决]谢谢各位

[复制链接]
发表于 2019-11-26 16:50:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
> old=[1,2,3,4,5]
>>> new=old
>>> old=[6]
>>> print(new)
[1, 2, 3, 4, 5]
>>>
为什么打印出来是这样的呢
最佳答案
2019-11-26 17:35:39
        old 和 new 是两个变量,它们可以通过赋值指向同一个对象,但是,它们仍然是两个变量,如果其中一个变量被赋新值,那么,变化的也只限于这个变量本身,与另一个变量毫无关系。
        new 和 old 通过赋值一起指向同一个列表  [1,2,3,4,5],之后,old 被重新赋值指向了列表 [6],那么,old 和 new 从此分道扬镳,new 继续指向列表 [1,2,3,4,5],old 指向列表 [6]。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-26 16:57:14 | 显示全部楼层

> old=[1,2,3,4,5]   old指向地址1
>>> new=old       new也指向地址1
>>> old=[6]        old指向地址2
>>> print(new)    new仍指向地址1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-26 17:35:39 | 显示全部楼层    本楼为最佳答案   
        old 和 new 是两个变量,它们可以通过赋值指向同一个对象,但是,它们仍然是两个变量,如果其中一个变量被赋新值,那么,变化的也只限于这个变量本身,与另一个变量毫无关系。
        new 和 old 通过赋值一起指向同一个列表  [1,2,3,4,5],之后,old 被重新赋值指向了列表 [6],那么,old 和 new 从此分道扬镳,new 继续指向列表 [1,2,3,4,5],old 指向列表 [6]。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-26 18:43:06 | 显示全部楼层
贴标签[1,2,3,4,5]不变把new贴在上面,又把old贴再上面。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-26 18:59:10 | 显示全部楼层
old 在被你使用 old=[6]时,指向了新值[6],所以old变成了[6],而new依然还指向着old原来的地址,也就保持着[1,2,3,4,5]了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-26 20:30:51 | 显示全部楼层
new = old 相当于把 new 标签贴在 old 标签的盒子上,但 old = [6] 就把 old 标签贴在了另外一个盒子上,所以 old 和 new 从这一句之后就没有关系了,old 是 [6],new 继续保持 [1, 2, 3, 4, 5]。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-13 21:33:27 | 显示全部楼层
分片那会,不是old变, new也跟着变吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 03:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表