python列表计数方法的性能

时间:2014-06-03 17:36:45

标签: python performance

在python中,很容易获得列表中特定项目的计数:

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

这种方法是O(N)吗?是否建议使用此方法,或者是否有更好的方法可以快速获取列表中任意数量的元素的计数(即避免O(mN)的方法,其中m是对其调用的记录数) count是必需的。)

1 个答案:

答案 0 :(得分:4)

是的,如果您需要在迭代中计算多次,请使用collections.Counter。然后你只需要迭代一次。

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