在python列表中,我想删除重复小于'k'的所有元素.例如,如果k == 3那么我们的列表是:
l = [a,b,c,c,c,a,d,e,e,d,d]
Run Code Online (Sandbox Code Playgroud)
然后输出必须是:
[c,c,c,d,d,d]
Run Code Online (Sandbox Code Playgroud)
什么是快速的方法(我的数据很大),任何好的pythonic建议?
这是我编码的,但我不认为它是最快和最pythonic的方式:
from collections import Counter
l = ['a', 'b', 'c', 'c', 'c', 'a', 'd', 'e', 'e', 'd', 'd']
counted = Counter(l)
temp = []
for i in counted:
if counted[i] < 3:
temp.append(i)
new_l = []
for i in l:
if i not in temp:
new_l.append(i)
print(new_l)
Run Code Online (Sandbox Code Playgroud)