Python のネイティブ リストのパフォーマンスと、このようなリンクされたリストの実装を比較する簡単な実験を試みました。
ネイティブの python リストは、(理論によれば) すべきではない場合でも、非ネイティブのリンクされたリストよりも常に高速です。
from linkedlist import *
import time
a = LinkedList()
b = []
for i in range(1000000):
b.append(i)
a.add_first(i)
t0 = time.clock()
a.remove(10)
t1 = time.clock()
b.remove(10)
t2 = time.clock()
print t1-t0
print t2-t1
上記のテストで得た結果は次のとおりです。
ネイティブ リンク リスト = 2.00000000001e-05
python リスト = 0.005576
非ネイティブ リンク リスト = 3.90000000001e-05
では、なぜ Python にはネイティブの Linked List データ構造がないのか疑問に思っていました。Python の場合、アルゴリズム的に言えば、標準ライブラリのいくつかの側面を高速化するために、標準のリストの代わりにリンクされたリストを使用すると便利であると思われます。
私の理解では、List データ構造は言語の重要な構成要素であり、コードをより保守しやすくし、まさにそのデータ構造に集中するために簡単に最適化できるようにします。
他に理由はありますか?