私はネイティブのPythonリストのパフォーマンスをリンクリストの実装(例えばthis)と比較する簡単な実験を試みました。なぜ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の場合、標準的なライブラリのいくつかの側面をスピードアップするために、標準リストの代わりに リンクリストを持つことがアルゴリズム的には有用であると私は思っています。
私の理解では、リストデータ構造は言語の重要なビルディングブロックであり、コードをよりメンテナンスしやすくし、その非常にデータ構造に集中するように簡単に最適化できるようにします。
その他の理由はありますか?
あなたのテストで2つの 'print'sと3つの結果が表示されます - あなたの"ネイティブ "リンクリストはどこから来ますか? – Eric
私はさまざまな実装でテストを何回も実行しました。また、このクイックでスーパーダーティなコードをswigで構築しました。http://cl.ly/code/2A3t352q1m1Y – lc2817
「なぜ開発者がリンクリストDSをPython? " p.s.私は質問がSO、おそらくProgrammers.SEに収まるように少し主観的だと思いますか? – amit