私はこのような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)
追加のクレジット、スプライシング、または任意のポップ用。