こんなの作ってみた
辞書型の辞書型と言うべきか?ただし[a][b]と[b][a]は同じものを指す。
これだと相関取るときに重複のチェックしなくていいかなーって。
class MultiDict: def __init__(self): self.parent = {} def add(self,x,y,value): if self.parent.has_key(x): if self.parent[x].has_key(y): self.parent[x][y] += value else: self.parent[x][y] = value elif self.parent.has_key(y): if self.parent[y].has_key(x): self.parent[y][x] += value else: self.parent[x][y] = value else: self.parent[x] = {} self.parent[x][y] = value def get(self,x,y): if self.parent.has_key(x): return self.parent[x][y] elif self.parent.has_key(y): return self.parent[y][x] else: return self.parent[x][y] if __name__ == "__main__": md = MultiDict() md.add('a','b',1) print md.get('a','b')#1 md.add('b','a',1) print md.get('a','b')#2 print md.get('b','a')#2