在Python中,分配列表等效于deepcopy()或copy()?

问题描述 投票:0回答:1

在python中。赋值运算符用作deepcopy()还是copy()?例如,如果我将列表“ a”分配给列表“ b”。它会创建列表“ a”的浅表副本还是深表副本?

list copy deep-copy assignment-operator shallow-copy
1个回答
0
投票

既不是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
© www.soinside.com 2019 - 2024. All rights reserved.