【发布时间】:2018-09-20 04:33:29
【问题描述】:
我正在编写一个看起来像这样的python函数
def foo(some_list):
for i in range(0, len(some_list)):
bar(some_list[i], i)
所以它被调用了
x = [0, 1, 2, 3, ... ]
foo(x)
我曾假设列表的索引访问是 O(1),但惊讶地发现对于大型列表,这比我预期的要慢得多。
那么,我的问题是python列表是如何实现的,下面的运行时复杂度是多少
- 索引:
list[x] - 从最后弹出:
list.pop() - 从头弹出:
list.pop(0) - 扩展列表:
list.append(x)
为了额外的信用,拼接或任意弹出。
【问题讨论】: