高手帮忙看一下这个列表拷贝问题
>>> old =>>> new = old
>>> old =
>>> print(new)
运行结果
为什么他会打印
他没有用分片拷贝,再修改old的时候,不应该new也要跟着改变吗
old重新赋值,指向了新的区域,new没变 分片是修改内部元素才不修改,你是直接把标签换了 可以这样理解
现在有这样一组数据
我告诉你他既叫old也叫new
然我现在告诉你:从现在开始叫old(言外之意就是只有6能叫old,而12345不能再叫old了,只能叫new)
所以old出来是6,new出来是12345
所以说,这是给字符串取名字的故事,字符串是本体,名字是可变的,我可以给同样内容的一个字符串取好几个名字,也可以把一个名字从字符串A划分给字符串B而不改变字符串的内容
>>> old =
>>> new = old
>>> old =
>>> print(new)
old = 是重新赋值,它的存储区域已经改变,生成一个新的ID
new = old new的存储ID是第一行old的ID
如果是对第一行old的修改,如old.append(6),那么是在原old 存储ID上的数据进行修改,也就是old列表添加了6这个元素,
因为new和原old的存储ID是一样的,也就是指向同一个标签,原old添加之后,就是标签改变了,所以new也会变成
页:
[1]