Python 列表 count 方法的性能
在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)]