Python列表是否包含超过N次的数字?

Python列表是否包含超过N次的数字?,python,Python,在Python中,我有一个数字列表。找出列表中包含的数字是否超过N次的最简单方法是什么 if your_list.count(item) > N: print("it happened here") [x for x in set(the_list) if the_list.count(x) > N] 不过,对于计算机来说,这并不是最有效的方法(O(n**2)),因此对于大型列表需要另一种策略 使用collections.Counter意味着计算机只需扫描列表一次,因此效

在Python中,我有一个数字列表。找出列表中包含的数字是否超过N次的最简单方法是什么

if your_list.count(item) > N:
    print("it happened here")
[x for x in set(the_list) if the_list.count(x) > N]
不过,对于计算机来说,这并不是最有效的方法(
O(n**2)
),因此对于大型列表需要另一种策略

使用
collections.Counter
意味着计算机只需扫描列表一次,因此效率更高(
O(n)


我看到你对“超过N次的任何数字”的理解与我不同。我认为最好使用
any
而不是
max
,这样它就可以缩短
any(x>N代表计数器中的x(我的列表)。itervalues())
@johnlaroy,我认为这取决于,
max
具有更可预测的性能:更好的最坏情况和更坏的最佳情况<如果没有元素显示超过N次,则代码>最大值将更快。我想大部分时间都会花在构建
计数器上,所以这个差别很小
max
golfs更好,imo更具可读性。
[x for x in set(the_list) if the_list.count(x) > N]
from collections import Counter
[k for k, v in Counter(the_list).items() if v > N]