python 第12讲第4题错了!
copy()和切片不一致,我理解切片拷贝是 list2 = list[:],不是list2 = list1,难道理解错了?list1 = ], 3, 5, 8, 13, 18]
list2 = list1.copy()
list1 = ['小丑鱼']
print(list2)
list1 = ['小鱼']
print(list1)
结果:
], 3, 5, 8, 13, 18]
], 3, 5, 8, 13, 18]
另外问一下我为什么不能在其他版块发帖? 理解:
list2 = list1[:]#表示有2相同个物体(从list1中 复制一份给 list2。也就是说有2份。list1 1份 list2 1份,他们的内容一样。)
list2 = list1 #一个物体 ,2个叫法(2个变量,同时指向一个内容)
ba21 发表于 2018-3-16 17:11
理解:
list2 = list1[:]#表示有2相同个物体(从list1中 复制一份给 list2。也就是说有2份。list1 1份 l ...
copy()实际测试 list2 = list1是一样的概念 dahua123333 发表于 2018-3-16 17:13
copy()实际测试 list2 = list1是一样的概念
是的 dahua123333 发表于 2018-3-16 17:13
copy()实际测试 list2 = list1是一样的概念
http://www.runoob.com/python3/python3-att-list-copy.html 如果是list2=list1,那么相当于两个标签共享一块内存
如果是list2=list1[:] 或者使用copy,那么会开辟两块内存,分布使用,但是其内部如果有列表之类的,那么这些还是会共享一块内存
如果要实现完全的拷贝,请用copy模块的copy.deepcopy函数 你的理解是对的,但是这里有一个深拷贝和浅拷贝的区别,如果说没有列表套着列表
那么深拷贝和浅拷贝一般没有太大的区别,但是如果有列表套着列表的有区别了
你可以看一下这样深拷贝之后的区别 具体差别,你可以看一下这个博客:http://blog.csdn.net/qq_32907349/article/details/52190796 这是深浅copy的区别:
你用的是浅copy,所以list1的列表中]的地址依旧会被list2继承,
当这个镶嵌列表改变时,list2也会改变.
这里有篇非常详细的文章https://www.cnblogs.com/Eva-J/p/5534037.html
{:10_254:}
页:
[1]