这是代码:
L=[1,2]
L is L[:]
False
为什么这是假的?
答案 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