我试图在另一个集合中创建一个集合,并且只排除一个项目......(在另一个 for 循环中执行一个 for 循环,其中一个对象位于一个集合内,但在第二个循环中不与自身迭代)
代码:
for animal in self.animals:
self.exclude_animal = set((animal,))
self.new_animals = set(self.animals)
self.new_animals.discard(self.exclude_animal) # parameters for a set needs to be a set?
for other_animal in (self.new_animals):
if animal.pos[0] == other_animal.pos[0]:
if animal.pos[1] == other_animal.pos[1]:
self.animals_to_die.add(animal)
print other_animal
print animal
self.animals_to_die.add(other_animal)
关键是,我的 print 语句返回 object id(x)
,所以我知道它们是同一个对象,但它们不应该是,我在那个集合上丢弃它new_animals
。
关于为什么这不排除该项目的任何见解?