在Python中,我有一个数字列表。找出列表是否包含超过N次的任何数字的最简单方法是什么?
答案 0 :(得分:3)
from collections import Counter
max(Counter(my_list).itervalues()) > N
答案 1 :(得分:3)
你的最简单方法可能就像
[x for x in set(the_list) if the_list.count(x) > N]
对于计算机,这不是最有效的方法( O(n**2)
),因此大型列表需要另一种策略。
使用collections.Counter
表示计算机只需要扫描一次列表,因此效率更高( O(n)
)
from collections import Counter
[k for k, v in Counter(the_list).items() if v > N]