土豆泥是个球 发表于 2020-3-30 15:07:24

求助第012讲测试第0题:深拷贝与浅拷贝

>>> old =
>>> new = old
>>> old =
>>> print(new)

为什么这个输出 是?
这里没有使用[:],不是应该随着原数组变化而变化吗?{:5_94:}

qiuyouzhi 发表于 2020-3-30 15:10:27

和贴标签一样:
这个直接把old的标签撕了下来,贴给了6
new当然是不会变化的啦

heidern0612 发表于 2020-3-30 15:13:44

本帖最后由 heidern0612 于 2020-3-30 15:33 编辑

你把列表当做实际的物体,变量当做标签。

①、old贴在【1,2,3,4,5】上。

②、new和old都贴在上。

③、old挪走贴在上。

④、new还是没动,仍贴在上。



简单说,就是两个变量同时指向一个地址,一个变量指向一个新地址后,另外一个变量指向的地址没变化。

土豆泥是个球 发表于 2020-3-30 15:15:50

qiuyouzhi 发表于 2020-3-30 15:10
和贴标签一样:
这个直接把old的标签撕了下来,贴给了6
new当然是不会变化的啦

>>> list1 =
>>> list3 = list1
>>> list3

>>> list1.sort()
>>> list3


这个就是会随着变化是因为sort只是改变排序,没改变标签吗?
还是因为什么这个就会变化?

qiuyouzhi 发表于 2020-3-30 15:16:24

土豆泥是个球 发表于 2020-3-30 15:15
这个就是会随着变化是因为sort只是改变排序,没改变标签吗?
还是因为什么这个就会变化?

对的,列表的内置方法不会改变标签

土豆泥是个球 发表于 2020-3-30 15:31:46

heidern0612 发表于 2020-3-30 15:13
你把列表当做实际的物体,变量当做标签。

①、old贴在【1,2,3,4,5】上。


谢谢~
页: [1]
查看完整版本: 求助第012讲测试第0题:深拷贝与浅拷贝