Python列表的引用不一样

时间:2010-03-16 10:49:29

标签: python

这是代码:

L=[1,2]

L is L[:]

False

为什么这是假的?

3 个答案:

答案 0 :(得分:14)

L[:](切片表示法)表示:逐个元素地复制整个列表。

因此,您有两个具有相同内容的列表,但它们是单独的实体。由于is评估对象标识,因此返回False

L == L[:]返回True

答案 1 :(得分:6)

如果有疑问,请询问id;)

>>> li = [1,2,4]
>>> id(li)
18686240
>>> id(li[:])
18644144
>>> 

答案 2 :(得分:2)

列表的 getslice 方法,当你到L []时调用,返回一个列表;因此,当您使用':'参数调用它时,它的行为不同,它返回一个与原始元素具有相同元素的新列表。

>>> id(L)
>>> id(L[:])
>>> L[:] == L 
True
>>> L[:] is L
False