0

我在 Ipython Notebook 上使用来自 Anaconda 2.2.0 的 python 2.7.10,并且正在观察以下明显的错误(参见下面的代码)。对两个等价列表进行相同的操作会产生两个不等价的列表。如果打算这两个列表由于它们的启动方式不同而表现不同,那么两个列表的相等比较不应评估为 True(因为 A == B <=> F(A) = = F(B))。在我看来,这一定是列表对象定义或相等运算符实现中的错误。有人可以确认这是一个错误并告诉我引起社区注意的最佳方式吗?

> test = [[]]*3 
> testtwo = [[],[],[]]
> print(test)
> print(testtwo)
> print(test==testtwo)

[[], [], []]
[[], [], []]
True    

> test[1].append(2)
> testtwo[1].append(2)
> print(test)
> print(testtwo)
> print(test==testtwo)

[[2], [2], [2]]
[[], [2], []]
False
4

0 回答 0