关于列表copy的一些问题
如图,为什么利用copy方法之后,对于列表1的修改,列表2也同步修改了,但是对列表1清空之后,列表2反而没有清空呢? 你 修改 list1 ,并不是重新赋值,所以改变的是 原 list1,继而 list2 会跟着变化
而你 清空 list1,相当于 重新赋值 一样,
list2 不会变化 copy是浅拷贝,它只保证一级元素的独立的,而二级以上的元素的同步变化的。如果要完全独立需要深拷贝。
>>> lst1=
>>> lst2 = lst1.copy()
>>> lst1 = 3
>>> lst1
>>> lst2
>>> lst3 = ]
>>> lst4 = lst3.copy()
>>> lst3 = 5
>>> lst3
]
>>> lst4
] 冬雪雪冬 发表于 2019-4-15 17:50
copy是浅拷贝,它只保证一级元素的独立的,而二级以上的元素的同步变化的。如果要完全独立需要深拷贝。
可以说具体一些吗?什么叫一级元素独立而二级元素同步变化 907950270 发表于 2019-4-15 18:31
可以说具体一些吗?什么叫一级元素独立而二级元素同步变化
就是一维列表的元素和多维列表内部的元素 你这个涉及到的是python的可变数据与不可变数据的深拷贝浅拷贝的问题。这个链接讲得会非常详细。
https://my.oschina.net/leejun2005/blog/145911
页:
[1]