def remove_all_2(list_, value):
for item in list_.copy(): # list_[:]
if item == value:
list_.remove(value)
return list_
为什么这一段代码中,改变list_后,list_.copy不变呢?浅拷贝不是会随原来拷贝的对象的改变而改变吗?
def remove_all_2(list_, value):
for item in list_.copy(): # list_[:]
if item == value:
list_.remove(value)
return list_
为什么这一段代码中,改变list_后,list_.copy不变呢?浅拷贝不是会随原来拷贝的对象的改变而改变吗?
看一下代码与图:
import copy
a = [44, 55]
x = [1, 2, 3, a]
y = x
z = x.copy()
g = copy.deepcopy(x)
print(a, x, y, z, g)