Python 列表 count 方法的性能

3 投票
1 回答
4447 浏览
提问于 2025-04-18 08:27

在Python中,想要知道列表中某个特定项目的数量是非常简单的:

>>> L = [1,1,1,2,3,4]
>>> print(L.count(1))
3

这个方法的时间复杂度是O(N)吗?使用这个方法合适吗?还是说有没有更好的方法可以快速获取列表中任意数量元素的计数(也就是说,避免O(mN)的情况,其中m是需要调用count的记录数量)。

1 个回答

7

是的,如果你需要对可迭代的对象(比如列表)进行多次计数,可以使用collections.Counter。这样你只需要遍历一次就可以完成计数。

>>> from collections import Counter
>>> counter = Counter('hellooo i am a potato!!!!!')
>>> counter.most_common(2)
[('o', 5), ('!', 5)]

撰写回答