在列表筛选器[]的if中插入变量

2024-04-25 02:33:05 发布

您现在位置:Python中文网/ 问答频道 /正文

以下代码不起作用

s = [x for x in s if s.count(x) > k]

其中s是我的列表,k是一些自然数,但如果我用4代替k,它就起作用了。可以在那里算出变量k


Tags: 代码in列表forifcount
1条回答
网友
1楼 · 发布于 2024-04-25 02:33:05

您的代码应该可以工作,但效率很低,每次进行.count运算会产生二次复杂度,创建计数器dict并进行查找会产生线性解决方案:

from collections import Counter

cn = Counter(s)
print([x for x in s if cn[x] > k])

相关问题 更多 >