列表= [1,2,3,4,1,2,3,1,2]
这里我只需要删除第二个重复项(一式三份)并忽略第一个重复项。
最终结果应如下所示,
Out_list = [1,2,3,4,1,2,3]
答案 0 :(得分:7)
使用Counter:
进行pythonic方式from collections import Counter
l = [1,2,3,4,1,2,3,1,2]
c = Counter()
new_l = [ i for i in l if c.update([i]) or c[i]<3 ] #new_l=[1,2,3,4,1,2,3]
一个简短的解释:Counter的方法update
使用迭代器并将此迭代器的元素递增一,并返回None
,其作为布尔值转换为False
。因此c.update([i]) or c[i]<3
相当于c[i]<3
。
答案 1 :(得分:0)
尝试这样的事情,
In [13]: lst = [1,2,3,4,1,2,3,1,2]
In [14]: while True:
...: check_list = [i for i in set(lst) if lst.count(i) > 2]
...: if check_list:
...: for item in check_list:
...: lst.reverse()
...: lst.remove(item)
...: lst.reverse()
...: else:
...: break
...:
In [15]: lst
Out[15]: [1, 2, 3, 4, 1, 2, 3]