|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 的值当然不同了。
|
|