【问题标题】:What happens if you deep-copy dictionary to itself?如果您将字典深度复制到自身会发生什么?
【发布时间】:2019-09-17 02:10:06
【问题描述】:

我刚刚看到了一些代码,上面写着data = copy.deepcopy(data)

  • 这行得通吗?
  • 这里发生了什么?

【问题讨论】:

  • 那不是“对自己”。 data 变量与旧字典或新字典不同。见nedbatchelder.com/text/names.html
  • copy 模块中没有提供任何将对象复制到其他对象的概念。
  • 在 Python 中,首先评估 RHS,然后分配给 LHS。在这个例子中不会发生任何意想不到的事情;你根本不需要小心。

标签: python dictionary deep-copy


【解决方案1】:

它将为数据分配新的内存。试试运行这个 sn-p 代码

import copy

data = [1, 2, 3, 4]
print(hex(id(data)))
data = copy.deepcopy(data)
print(hex(id(data)))

将打印不同的内存地址。

【讨论】:

    猜你喜欢
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多