Python保留list只出现一次的元素
Aug 30, 2010就是定义一个函数 filter_by_uniqueness(),参数是一个list,返回另外一个list,只保留在原始list里出现一次的元素,例如:
>>> l = [‘a’, ‘b’, ‘b’, ‘c’, ‘d’, ‘d’, ‘d’] >>> filter_by_uniqueness(l) [‘a’, ‘c’]
不知道大家有什么好方法?
我现在用的土鳖方法:
def filter_by_uniqueness(l): d = {} for elem in l: if elem in d: d[elem] += 1 else: d[elem] = 1 uniquel = [] for k,v in d.items(): if v == 1: uniquel.append(k) return uniquel
就是先统计list里每个元素出现的次数,然后遍历list里的元素和次数,把出现次数等于1的元素存入一个新的list再返回。
其实Python里有个简便的方法去掉list里的重复元素: >>> l = [‘a’, ‘b’, ‘b’, ‘c’, ‘d’, ‘d’, ‘d’] >>> list(set(l)) [‘a’, ‘c’, ‘b’, ‘d’]
不知道可以怎么利用一下。