【问题标题】:List copy mechanism in pythonpython中的列表复制机制
【发布时间】:2019-01-08 11:46:41
【问题描述】:

我知道使用以下代码复制列表将执行浅拷贝。即创建新列表。

>>> L = [1,2,3,4,5]
>>> L_copy = L[:]
>>> L_copy

>>>[1, 2, 3, 4, 5]

>>> L_copy is L

错误

以下代码是如何执行的:

L[:] = some_list

我在一个例子中看到过。

这是我关于stackoverflow的第一个问题。

【问题讨论】:

  • 我不清楚你在问什么。你了解列表切片吗?
  • 这段代码基本上把L的内容都擦掉了,把新列表的内容放进去。

标签: python list mutation


【解决方案1】:

L[:] 创建了一个等于但不是同一个对象的对象。

>>> L = [1,2,3,4,5]
>>> _L = L[:]
>>> print L,_L
[1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
>>> L == _L
True
>>> L is _L
False
>>>

is 告诉你的是 L_L 不是同一个对象。

>>> L[:] == L[:]
True
>>> L[:] is L[:]
False
>>>

【讨论】:

    猜你喜欢
    • 2013-06-10
    • 2013-07-04
    • 2015-04-25
    • 2013-07-04
    • 1970-01-01
    • 2011-10-23
    • 2018-04-17
    • 1970-01-01
    相关资源
    最近更新 更多