azalea says

Python保留list只出现一次的元素

就是定义一个函数 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’]

不知道可以怎么利用一下。

list programming python · Tweet Edit