鱼C论坛

 找回密码
 立即注册
查看: 948|回复: 3

[已解决]列表!关于qtc=list1,他不是墙头草吗,他怎么不变啊

[复制链接]
发表于 2018-1-23 17:18:23 | 显示全部楼层 |阅读模式

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

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

x
1516699092(1).png
list1排序后,qtc会跟着变化
某一元素重新被赋值后 qtc也会跟着变
为什么list1整个被赋值,qtc就不变呢
最佳答案
2018-1-23 17:25:50
python中变量名只是标签而已,可以多个标签指向同一块内存
qtc=list1
意味着qtc和list1这两个标签指向了同一块内存
所以你对qtc和list1指向的数据进行改动,比如列表的pop,sort,reverse等操作都会对两者同时产生作用,因为他们修改了内存中的数据
而你将list1重新赋值,意味着list1标签指向另外一块内存,从此list1和qtc再无瓜葛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-23 17:25:50 | 显示全部楼层    本楼为最佳答案   
python中变量名只是标签而已,可以多个标签指向同一块内存
qtc=list1
意味着qtc和list1这两个标签指向了同一块内存
所以你对qtc和list1指向的数据进行改动,比如列表的pop,sort,reverse等操作都会对两者同时产生作用,因为他们修改了内存中的数据
而你将list1重新赋值,意味着list1标签指向另外一块内存,从此list1和qtc再无瓜葛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-23 17:29:05 | 显示全部楼层
本帖最后由 大麦miracle 于 2018-1-23 17:38 编辑

都整个赋值了说明list1已经不是以前的list1了,qtc墙头草只是说跟随着列表局部改变而改变,就好比你去家乐福买东西,有人叫他家乐福有人叫他大超市,不管怎么样他位置都在那里,你说的也是一个,但是如果他换地方了,名字还是家乐福,你再去那里找已经找不到了,位置已经改变,python中变量名只是个标签,具有指向性作用,就贴个名字而已!你给他重新赋值,他已经不是你之前的那个列表了,
Q.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-23 17:32:36 | 显示全部楼层
房间和门牌号的关系
重新赋值,就相当于重新分配内存,房间都不是同一个房间了,只是贴了个新的门牌号
由于之前的房间还有一个门牌号,所以没被释放(退房)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 13:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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