鱼C论坛

 找回密码
 立即注册
查看: 1010|回复: 1

[技术交流] Python 列表问题赋值的问题

[复制链接]
发表于 2018-3-16 23:11:07 | 显示全部楼层 |阅读模式

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

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

x
在学习列表的时候,遇到下面一个现象:
a = [1,2,3]
b = a
此时,a 和b 都是 [1,2,3]

如果此时对a 操作 a.append(4),则
a = [1,2,3,4]
b =[1,2,3,4]

而如果此时直接改变a的列表值:
a = [7,8,9]
此时再打印b,猜测b 也应该是[7,8,9],
但是结果却是 b =[1,2,3]        ????

这是为什么?
思考了好久突然想起小甲鱼说:“列表的标签”

才突然明白:
         刚开始列表[1,2,3]有两个标签:a , b.
        a.append(4) 操作其实是将列表[1,2,3]变为[1,2,3,4], 同时a,b还是他的两个标签。
        所以b的值随a的变化而变化。(思考:如果不对a操作,而是对b操作,a的值应该也会变化)。

        而如果此时a =[7,8,9],则说明标签a被从列表[1,2,3,4]上撕下,贴到了列表[7,8,9]上,此时b还在原来的列表上贴着,所以a 和 b 的值当然不同了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-17 06:30:38 | 显示全部楼层
讲的很有道理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 03:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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