以下代码不起作用
s = [x for x in s if s.count(x) > k]
其中s
是我的列表,而k
是一些自然数,但如果我将4
代替k
则可行。是否有可能在那里找出变量k
?
答案 0 :(得分:1)
你的代码应该可以工作但效率非常低,每次执行一次.count会给你二次复杂性,创建一个Counter dict并进行查找会给你一个线性解决方案:
from collections import Counter
cn = Counter(s)
print([x for x in s if cn[x] > k])