我了解到列表切片会返回一个包含原始列表内容的新列表。 在运行以下代码时,为什么对切片返回的所有列表都看到相同的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:]))
答案 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
>>>