删除Python中包含两个Dicts的类对象实例

时间:2014-10-09 10:09:12

标签: python class object dictionary

我正在寻找一种方便的方法来删除包含在两个词典中的类对象的实例。当我从一个字典中删除对象实例时,我应该在第二个字典中自动删除。无论如何这可能吗?

class node():

    def __init__(self, vID):
        self.vID = vID

    def __hash__(self):
        return hash(self.vID)

    def __eq__(self, other):
        return self.vID == other.vID

class structure():

    def __init__(self):
        self.point_index_a = {}   
        self.point_index_b = {}

    def add_point(self,x,y):

        x_object = node(x)
        self.point_index_a[x_object] = None
        self.point_index_b[x_object] = None

    def a_iter(self):

        for k,v in self.point_index_a.iteritems():
            print k,v      

    def b_iter(self):

        for k,v in self.point_index_b.iteritems():
            print k,v

mg = structure() 
mg.add_point(1, 8)
mg.add_point(3, 4)

# point index a
for k,v in mg.point_index_a.iteritems():
    print k,v
# point index b
for k,v in mg.point_index_b.iteritems():
    print k,v

to_del = mg.point_index_a.iterkeys().next()
del to_del

# point index a, object to_del still exists in both dicts
for k,v in mg.point_index_a.iteritems():
    print k,v
# point index b
for k,v in mg.point_index_b.iteritems():
    print k,v

1 个答案:

答案 0 :(得分:1)

我将按如下方式实施:

class structure():

    ...

    def remove(self, point):
        del self.point_index_a[point]
        del self.point_index_b[point]