所以我只使用了这里提供的代码:http://www.ics.uci.edu/~eppstein/PADS/UnionFind.py,但我遇到了一些关于代码的问题:
首先, iter 方法的含义是什么?
其次,假设我最初有以下代码:
set R=set(['A','B','C','D','E','F','G'])
R=UnionFind()
然后,我如何执行打印,添加等设置的常规操作?如果我写print R,它只给出< main .UnionFind实例在0x000000000A31F048>,这显然不是我想要的。如果我写R.add('K')(将新元素'K'添加到集合R),我得到'AttributeError:UnionFind实例没有属性'add''。这是否意味着我需要为'add'定义一个属性?怎么做?
如果经过几次联合操作后,我将'A','B','C'分组到同一组,那么如果我想知道集合中所有'A'所在的元素(即' A','B','C'),我该怎么办?
感谢
答案 0 :(得分:1)
iter
函数返回给定对象的迭代器。在这种情况下,self.parents
的迭代器是dict
,因此结果将是字典键上的迭代器。
鉴于该代码,我能想到的唯一回应是SyntaxError
。
以下是使用UnionFind()
类的方法:
union_find = UnionFind()
a = 123
b = 456
c = 123
union_find.union(a, b, c)
print list(union_find)
结果将是:[456, 123]