在Python-3中,reversed()的时间复杂度是多少?我认为答案是O(1),但我想澄清它是对还是错?
发布于 2021-01-02 23:02:28
在我的机器上,reversed(some_list)总是需要大约120 is才能完成,这是O(1)时间复杂度的明显标志。这是因为该函数实际上并不更改任何值,它只返回一个list_reverseiterator,向后迭代列表。这个对象非常类似于一个普通的生成器,例如,当你在它上面调用list时,它的元素会被消耗掉:
In [10]: a = [i for i in range(5)]
In [11]: b = reversed(a)
In [12]: b
Out[12]: <list_reverseiterator at 0x7f11fe3615b0>
In [13]: list(b)
Out[13]: [4, 3, 2, 1, 0]
In [14]: b
Out[14]: <list_reverseiterator at 0x7f11fe3615b0>
In [15]: list(b)
Out[15]: []https://stackoverflow.com/questions/65540349
复制相似问题