鱼C论坛

 找回密码
 立即注册
查看: 931|回复: 7

[已解决]python列表问题

[复制链接]
发表于 2020-5-12 18:46:26 | 显示全部楼层 |阅读模式

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

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

x
这里把list1排序后,list3会跟着list1去改变,但是为什么吧list1列表改了,list3不跟着一起变。 QQ图片20200512184317.png
最佳答案
2020-5-13 09:16:19
在python中每个变量都有id地址,你可以用id(变量名)来查询是不是来自同一个地址,若是本身值发生改变一定也随之改变
list1.sort()
上面这个是对你列表本身进行重新排序,改变了列表本身的值,以为list1 和list3   id相同(地址相同)
值本身的改变也就会导致同id的值都一起改变,还有各种对列表直接进行改变的如append()、insert()、remove()等等都是同理
list1 = [6]
但是你这里是直接赋值,所以会把原有的值给覆盖了,而不是在原有的列表上进行改变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-12 18:49:05 | 显示全部楼层
因为它们是不同的列表,只需要再更新一下列表就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-12 18:51:07 | 显示全部楼层
和贴标签一个道理,你把list1的标签撕下来,贴到[6]上,和list3肯定没有关系
但列表的方法是不会改变标签的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-12 19:09:46 | 显示全部楼层
你这样就相当于把原来的列表覆盖了,新建了一个新的同名列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-12 19:21:51 | 显示全部楼层
你把list1重新指向了,list3还在原来的位置。

就像你把list1的门牌号拿走了,list3还是原来的门牌号一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-12 20:52:12 | 显示全部楼层

                               
登录/注册后可看大图


用id命令就明白了,list1=[6]之后,id变了,已经不指向以前的数组了

而list3还是指向以前的数组,所以没有变,而且list2跟list1,list3的指向的地址也不一样,所以排序不会跟着变化

有人给加点鱼币么

评分

参与人数 1鱼币 +1 收起 理由
nizitao + 1 给点

查看全部评分

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

使用道具 举报

发表于 2020-5-13 09:16:19 | 显示全部楼层    本楼为最佳答案   
在python中每个变量都有id地址,你可以用id(变量名)来查询是不是来自同一个地址,若是本身值发生改变一定也随之改变
list1.sort()
上面这个是对你列表本身进行重新排序,改变了列表本身的值,以为list1 和list3   id相同(地址相同)
值本身的改变也就会导致同id的值都一起改变,还有各种对列表直接进行改变的如append()、insert()、remove()等等都是同理
list1 = [6]
但是你这里是直接赋值,所以会把原有的值给覆盖了,而不是在原有的列表上进行改变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-30 10:54:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 00:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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