在 Python 程序中使用列表显示错误值


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]但在第二种情况下bc不同。为什么我会得到这个结果? c具有a的副本,但即使bc指向同一对象,b的值也不会更改。

c正在重新分配。它指向与b相同的对象,但现在指向a的副本。

如果您在倒数第二行中编写了c[:]=a[:],您将替换c的内容而不是其引用(就像您在示例中所做的那样(,并且输出将符合您的预期([1, 2, 3, 4, 7, 8, 9] [1, 2, 3, 4, 7, 8, 9](。

相关内容

最新更新