为什么最后的说法是假的? (edx)

Why is the last statement false? (edx)

a = [1,2,3] 

b = a
a == b
True
a is b
True 

b = a[:]
a == b
True
a is b
False

为什么最后一个说法是错误的? "b = a[:]" 这条线和另一条线有什么区别?

a[:]a 进行浅表复制,这意味着 b 是一个新列表并且与 a 不同(但内部元素如果 a 是一个 2d 列表将是相同的)

如果你这样做了:

a = [[1],[2],[3]]
b = a[:]
b is a
>>> False
b[0] is a[0] 
>>> True