【问题标题】:In Python, assigning list is equivalent to deepcopy() or copy()?在 Python 中,赋值 list 等价于 deepcopy() 还是 copy()?
【发布时间】:2020-07-23 20:36:54
【问题描述】:

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

【问题讨论】:

    标签: list copy deep-copy assignment-operator shallow-copy


    【解决方案1】:

    既不是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
    

    【讨论】:

    • 如果你提供一些参考会更好:)
    猜你喜欢
    • 2016-03-19
    • 1970-01-01
    • 2023-03-20
    • 2020-04-23
    • 2013-02-05
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    相关资源
    最近更新 更多