python中list去除重复
2012-03-20 11:20
211 查看
在一篇很牛的介绍python中list去重的博客(http://www.peterbe.com/plog/uniqifiers-benchmark )中收集到的:
from random import shuffle, randint import re from sets import Set def f1(seq): # Raymond Hettinger # not order preserving set = {} map(set.__setitem__, seq, []) return set.keys()
def f2(seq): # ********* # order preserving checked = [] for e in seq: if e not in checked: checked.append(e) return checked
def f3(seq): # Not order preserving keys = {} for e in seq: keys[e] = 1 return keys.keys()
def f4(seq): # ********** order preserving noDupes = [] [noDupes.append(i) for i in seq if not noDupes.count(i)] return noDupes
def f5(seq, idfun=None): # Alex Martelli ******* order preserving if idfun is None: def idfun(x): return x seen = {} result = [] for item in seq: marker = idfun(item) # in old Python versions: # if seen.has_key(marker) # but in new ones: if marker in seen: continue seen[marker] = 1 result.append(item) return result
def f5b(seq, idfun=None): # Alex Martelli ******* order preserving if idfun is None: def idfun(x): return x seen = {} result = [] for item in seq: marker = idfun(item) # in old Python versions: # if seen.has_key(marker) # but in new ones: if marker not in seen: seen[marker] = 1 result.append(item)
def f6(seq): # Not order preserving return list(Set(seq))
def f7(seq): # Not order preserving return list(set(seq))
def f8(seq): # Dave Kirby # Order preserving seen = set() return [x for x in seq if x not in seen and not seen.add(x)]
def f9(seq): # Not order preserving return {}.fromkeys(seq).keys()
def f10(seq, idfun=None): # Andrew Dalke # Order preserving return list(_f10(seq, idfun))
def _f10(seq, idfun=None): seen = set() if idfun is None: for x in seq: if x in seen: continue seen.add(x) yield x else: for x in seq: x = idfun(x) if x in seen: continue seen.add(x) yield x
def f11(seq): # f10 but simpler # Order preserving return list(_f10(seq))
def _f11(seq): seen = set() for x in seq: if x in seen: continue seen.add(x) yield x
相关文章推荐
- python去除list中的重复元素的最简单办法(但性能不一定好)
- Python中利用set去除列表(list)重复元素
- 【Python】【List】去除列表中重复的元素
- python的list去除重复
- Python去除list中重复的元素
- python 列表(list)去除重复的元素总结
- 去除python list中的重复值
- python去除slice和list的重复元素
- python 去除 list 重复元素
- python 去除 list 重复元素
- python题目-----去除list中重复元素
- python中使用set去除list中的重复元素
- python 去除 list 重复元素
- Python: 去除List中的重复元素
- python list排序(正倒)以及获取重复数据
- list集合去除重复对象的实现
- 去除List集合中的重复值(四种好用的方法)
- 解决python list列表查找重复值的下标值问题
- List去除重复数据
- 去除List中的重复值