首页 > 解决方案 > 为什么集合似乎表现不同?

问题描述

在下面的示例中,当在集合 B 上调用 .add() 方法时,集合 A 也会受到影响:

A = {0,1,3,4,5}
B = A 
B.add(10)

我期望这是因为 A 和 B 都指向同一个集合对象。

但是,在这种稍微不同的情况下,集合 A 不受影响:

A = {0,1,3,4,5}
B = A
B = B - {0,1}

在第二个例子中,为什么要为 B 创建一个新对象来指向?是什么解释了这种行为差异?

标签: pythonset

解决方案


您对第一种情况是绝对正确的-A并且B是同一个对象。

对于第二个示例,表达式B - {0,1}正在创建一个新集合。那个新集合被分配回B,所以现在B不再相同A了。


推荐阅读