通过Python切片返回的列表ID

时间:2019-12-01 06:28:38

标签: python

我了解到列表切片会返回一个包含原始列表内容的新列表。 在运行以下代码时,为什么对切片返回的所有列表都看到相同的ID。有人可以解释这里发生的事情吗。

production

输出:

list_4 = [0, 1, 2, 3, 4, 5]
print(id(list_4))
print(id(list_4[0:1]))
print(id(list_4[0:2]))
print(id(list_4[-1:]))

1 个答案:

答案 0 :(得分:2)

您的切片在下一条语句之前被删除,因此新切片具有相同的id。如果保留切片,则id永远不会相同:

>>> print(id(list_4[0:1]))
139887348117232
>>> print(id(list_4[0:2]))
139887348117232
>>> print(id(list_4[-1:]))
139887348117232
>>> b = list_4[0:1]
>>> c = list_4[0:2]
>>> id(b)
139887348117232
>>> id(c)
139887348207200
>>>