2014年03月12日 星期三 09:59
我们要对顺序容器(比如List)里面的元素进行去重处理,但同时要保持元素的顺序,可以使用如下算法:
def dedupe(items): seen=set() for item in items: if item not in seen: yield item seen.add(item) l=[3,1,4,1,5,9,2,6,2,7] ul=list(dedupe(l)) print(ul) sul=set(l) print(sul)
需要注意的是,set是无序的容器,顺序和无序的区别可以从上面示例代码的运行结果看到。
参考资料:
http://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
Zeuux © 2024
京ICP备05028076号