鱼C论坛

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

[已解决]关于数组的分片拷贝和等于

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

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

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

x
就是还是那个鱼哥讲过的问题。。。本来好像挺清楚的,后来又变糊涂了。。
就是 我们在课上说
list2 = list1
这种方式会使得list2 根据list1 的改变而改变,因为他们只是不同的变量名,指向了同意数组。。。
可是为什么
我这个样子,改变list1 的时候
list1 = [0]
这个时候 list2不会跟着改变呢?
最佳答案
2020-2-5 11:41:09
本帖最后由 txxcat 于 2020-2-5 11:42 编辑

当使用list1=[]的时候,实际上list1就指向另外的列表了,id发生了改变,而list2还是指向原来的列表id,自然不会改变了:
>>> list1=[]
>>> id(list1)
2704650687552
>>> list2=list1
>>> id(list2)
2704650687552
>>> list1=[0]
>>> id(list1)
2704658569024
如果你只是对list1进行其他的操作,增加、删除什么的,那么id是不变的,list2的内容也就跟着改变了:
>>> list1=[]
>>> id(list1)
2704658524992
>>> list2=list1
>>> id(list2)
2704658524992
>>> list1.append(0)
>>> id(list1)
2704658524992
>>> list1
[0]
>>> list2
[0]
>>> id(list2)
2704658524992
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-5 11:22:34 | 显示全部楼层
list1 = [0] 这一句相当于把 list1 标签贴在了另一个列表上,从此以后 list1 和 list2 就没有任何关系了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-5 11:41:09 | 显示全部楼层    本楼为最佳答案   
本帖最后由 txxcat 于 2020-2-5 11:42 编辑

当使用list1=[]的时候,实际上list1就指向另外的列表了,id发生了改变,而list2还是指向原来的列表id,自然不会改变了:
>>> list1=[]
>>> id(list1)
2704650687552
>>> list2=list1
>>> id(list2)
2704650687552
>>> list1=[0]
>>> id(list1)
2704658569024
如果你只是对list1进行其他的操作,增加、删除什么的,那么id是不变的,list2的内容也就跟着改变了:
>>> list1=[]
>>> id(list1)
2704658524992
>>> list2=list1
>>> id(list2)
2704658524992
>>> list1.append(0)
>>> id(list1)
2704658524992
>>> list1
[0]
>>> list2
[0]
>>> id(list2)
2704658524992
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-5 12:38:20 | 显示全部楼层
这个是变量命名的问题啊,跟数量属性没什么关系啊。
你可以这样理解list2和 list1 是两张写了名字的纸,贴到那里那里就是纸上的名字
list1 = [1, 2, 3]表示[1, 2, 3]被list1的纸贴上了,
list2 = list1 表示 list2的那张纸贴到被list1贴着的那个东西上(也就是[1, 2, 3])
然后你list1 = [0]表示把list1的那张纸从[1, 2, 3]上拿起贴到[0]上
但是list2的那张纸只是贴在[1, 2, 3]这个东西上而不是贴在list1这张纸上面,所以list2还在[1, 2, 3]上


简单的说就是一男一女谈恋爱。女孩子喜欢的东西男孩子也要喜欢,但是后来其中一个移情别恋了,剩下的那个还停留在以前的美好回忆之中,移情别恋那个新的记忆已经跟旧的那个人没关系咯
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-4 02:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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