从Python中的iterable构造Counter对象的时间复杂度是什么?

时间:2016-05-27 21:57:24

标签: python collections time-complexity counter complexity-theory

cnt = Counter ("Hello")
cnt = Counter ([1,2,3,3,3])

我认为上面代码的时间复杂度是O(N),其中N是每个集合的长度。

我没有找到Counter()对象here的确切时间复杂度。如果有人能证实我的猜测,我真的很感激。

1 个答案:

答案 0 :(得分:1)

正如source codedocumentation所示,Counter只是dict的子类,已针对计数对象进行了优化。从迭代构造它具有O(n)的时间复杂度,因为它迭代所有项目并在O(1)恒定时间内更新每个项目的计数器。

其他dict次操作的time complexity也适用于Counter