如果值是可哈希值,则删除重复项的最简单,最愚蠢的方法是使用
set:
values = mygenerator()unique_values = set(values)
但是要当心:集不记得值的原始顺序。因此,这扰乱了序列。
下面的功能可能比
set您的目的更好。它过滤掉重复项,而不会使其他任何值混乱:
def nub(it): seen = set() for x in it: if x not in seen: yield x seen.add(x)
调用
nub一个说法,可迭代的可哈希值。它返回一个迭代器,该迭代器生成所有相同的项目,但删除了重复项。



