如何从python中的列表中删除第二个副本

yog*_*raj -2 python duplicates

列表= [1,2,3,4,1,2,3,1,2]

在这里,我只需要删除第二个副本(三次重复)并忽略第一个副本.

最终结果如下,

Out_list = [1,2,3,4,1,2,3]

Flo*_*tin 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]
Run Code Online (Sandbox Code Playgroud)

一个简短的解释:updateCounter 的方法接受一个迭代器,并将此迭代器的元素递增1,并返回None强制转换为False布尔值.因此c.update([i]) or c[i]<3相当于c[i]<3.