鱼C论坛

 找回密码
 立即注册
查看: 978|回复: 4

[已解决]小白求解 零基础第12讲的第0题

[复制链接]
发表于 2018-2-21 02:06:24 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 茶之花desu 于 2018-2-21 02:12 编辑

求解 为什么
old=[1,2,3,4,5]
new=old
old=[6]
print(new)
new还是为12345?
不是应该会跟着变吗。。。
但是为什么使用方法修改old就会跟着变呢?
最佳答案
2018-2-21 07:38:43
old=[1,2,3,4,5]       #为列表[1,2,3,4,5]贴上了一个标签old;
new=old                #为列表[1,2,3,4,5]又贴上了一个标签new,现在有2个标签都指向了这个列表,这个列表只有一份;
old=[6]                 #old这个标签从列表[1,2,3,4,5]上拿掉,现在贴在列表[6]上。
最终结果:列表[1,2,3,4,5]只有一份,且标签为new;列表[6]也是只有一份,且标签为old
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-21 07:38:43 | 显示全部楼层    本楼为最佳答案   
old=[1,2,3,4,5]       #为列表[1,2,3,4,5]贴上了一个标签old;
new=old                #为列表[1,2,3,4,5]又贴上了一个标签new,现在有2个标签都指向了这个列表,这个列表只有一份;
old=[6]                 #old这个标签从列表[1,2,3,4,5]上拿掉,现在贴在列表[6]上。
最终结果:列表[1,2,3,4,5]只有一份,且标签为new;列表[6]也是只有一份,且标签为old
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-21 10:02:13 | 显示全部楼层
old=[1,2,3,4,5]    old指向一块空间 1,2,3,4,5
new=old              new也指向了old指向的空间
old=[6]               old指向了另一块空间 6,和new指向的不是同一块空间
如果上面语句old=[6]换成old[0] = 10          old指向的空间1,2,3,4,5的第一个元素变成了10,就是1变成了10
由于old和new指向同一块空间,所以old变化,new也变化了   

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-21 13:27:47 | 显示全部楼层
python 里面是分为对象和标签的,你可以把new 和 old 看作一个标签
将[1,2,3,4,5]和[6]看作对象
old = [1,2,3,4,5]     #old标签指向[1,2,3,4,5]
new = old              #表示new标签指向old标签,其实就是new和old标签同时指向 [1,2,3,4,5]
old = [6]                #表示将old标签从[1,2,3,4,5]撕下,贴到[6]上
print(new)              #new标签依旧指向[1,2,3,4,5],所以打印[1,2,3,4,5]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-21 15:12:52 | 显示全部楼层
snail:) 发表于 2018-2-21 13:27
python 里面是分为对象和标签的,你可以把new 和 old 看作一个标签
将[1,2,3,4,5]和[6]看作对象
old = [1 ...

补充:而且同样值的对象可以有多个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 01:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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