【发布时间】:2023-04-04 00:42:01
【问题描述】:
我看到很多关于python内置方法的运行时复杂度的问题,并且很多方法都有很多答案(例如https://wiki.python.org/moin/TimeComplexity、https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt、Cost of len() function等。 )
我没有看到任何地址枚举。我知道它至少返回一个新数组(索引),但生成它需要多长时间,另一个数组是否只是原始数组?
换句话说,我假设它是 O(n) 用于创建一个新数组(迭代)和 O(1) 用于重用原始数组......总共 O(n) (我认为)。副本的另一个 O(n) 是 O(n^2),还是其他什么...?
【问题讨论】:
-
O(n^2) 意味着 O(n * n) 不是 O(n + n)
-
enumerate返回一个枚举对象——它是一个迭代器对象——而不是一个列表,所以它的复杂性在一定程度上取决于它的使用方式。 -
没有
list.enumerate。 built-inenumerate()function 可用于任意迭代。
标签: python arrays big-o time-complexity enumerate