鱼C论坛

 找回密码
 立即注册
查看: 1615|回复: 5

[已解决]小白求解

[复制链接]
发表于 2020-3-17 21:20:22 | 显示全部楼层 |阅读模式

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

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

x
list1 = [1,3,5,7,9]
list2 = list1
list1.reverse()
list1
[9,7,5,3,1]
list2
[9,7,5,3,1]
  




那为什么


old = [1,2,3,4,5]
new = old
old = [6]
print(new)
[1,2,3,4,5]

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2020-3-17 21:30:29 | 显示全部楼层
本帖最后由 suchocolate 于 2020-3-17 21:32 编辑

变量只是数据的地址,让2个变量指向1个数据的地址和指向2个不同数据的地址的区别。
list1 = [1,2,3]
list2 = list1   # 此时变量list1和list2指向相同地址,你可以用id(list1)查看地址。
list1 = [4]  # 此时list1不再指向原来的地址,指向了新数据的地址
print(list1)
[4]
print(list2)
[1,2,3]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 21:31:30 | 显示全部楼层
本帖最后由 墨羽岚 于 2020-3-17 21:47 编辑

你懂了上面的为什么会不懂下面的
old被重新赋值了但是new还是原来那个old的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 21:36:56 | 显示全部楼层
old = [6] 相当于将 old 标签贴在了另一个盒子 [6] 上,此时的 old 和 new 就完全没有关系了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 21:42:53 | 显示全部楼层
本帖最后由 sunrise085 于 2020-3-17 21:45 编辑

2.jpg
python中变量名是标签,你将变量名重新赋值,意味着将这个标签从原来的地址上撕下来贴到新的地址上去了
可以看看我写的帖子
python细节之2、变量名与标签 变量的赋值与修改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 21:43:09 | 显示全部楼层    本楼为最佳答案   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 13:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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