从列表中删除可变对象

时间:2014-01-29 22:40:04

标签: python-2.7

所以我有以下类对象:

class Bond(object):
    def __init__(self, Atom1=None, Atom2=None):
        self.atoms = [Atom1, Atom2]

其中Atom1和Atom2是可变对象。

我有:

>>> first_bond
    Bond(Atom1, Atom2)
>>> second_bond
    Bond(Atom1, Atom3)
>>> third_bond
    Bond(Atom2, Atom1)

并且还有:

>>> bonds
    [first_bond, second_bond, third_bond]

如果您意识到,first_bondthird_bond是相同的,因为一个与另一个相反,这是:

>>> first_bond == third_bond[::-1]
    True

所以我的问题是如何实现一个函数或者只能过滤不同对象的东西,这样我的最终bonds就是:

>>> bonds
    [first_bond, second_bond]

我已经读过,使用__eq____hash__方法可能是一种解决方案,然后使用set(bonds)。但由于Atoms是可变对象,我不知道这是否可能。

0 个答案:

没有答案