a=[1 , 2, 3, 4, 7, 8, 9]
b=[7, 13, 15]
c=b
print c, b
c=a[:]
print c, b
第一次打印给了我[7, 13, 15], [7, 13, 15]
但在第二种情况下b
与c
不同。为什么我会得到这个结果? c
具有a
的副本,但即使b
和c
指向同一对象,b
的值也不会更改。
c
正在重新分配。它指向与b
相同的对象,但现在指向a
的副本。
如果您在倒数第二行中编写了c[:]=a[:]
,您将替换c
的内容而不是其引用(就像您在示例中所做的那样(,并且输出将符合您的预期([1, 2, 3, 4, 7, 8, 9] [1, 2, 3, 4, 7, 8, 9]
(。