为什么最后的说法是假的? (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
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