在python中。赋值运算符用作deepcopy()还是copy()?例如,如果我将列表“ a”分配给列表“ b”。它会创建列表“ a”的浅表副本还是深表副本?
既不是copy()
也不是deepcopy()
。
在Python中,所有变量都是引用类型。因此,一旦您将一个列表分配给另一个列表,则它们都代表相同的地址。因此,如果您update/add/delete
列表中的元素,则列表b中也会发生相同的更改。
因此,如果列表仅包含不可变元素,则可以使用copy()
创建副本,但是如果列表也包含可变元素,则需要使用deepcopy()
import copy
b=a.copy() #If list a elements are immutable
c=a.deepcopy() #If list a elements are mutable