0
アルゴリズムとデータ構造を使用して問題を解決してプログラミングをしています。リストと辞書のdel演算子のパフォーマンスを比較すると、コードはdictとリストのパフォーマンスをPythonで比較するとエラーが発生する
ですTraceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\Problem_Solving\chapter2_del_list_dict.py", line 17, in <module>
time = t.timeit(number=1000)
File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\timeit.py", line 178, in timeit
timing = self.inner(it, self.timer)
File "<timeit-src>", line 6, in inner
IndexError: list assignment index out of range
そして、時には:
import timeit, random
from timeit import Timer
for i in range(1000000, 100000000, 1000000):
x = list(range(i))
t = Timer("del x[random.randrange(%d)]" %i,\
"from __main__ import random,x")
y = {j: None for j in range(i)}
key = random.choice(list(y.keys()))
t1 = Timer("del y[%d]" %key,\
"from __main__ import y")
time1 = t1.timeit(number=1000)
time = t.timeit(number=1000)
print("%d, %15.5f, %15.5f" % (i, time, time1))
はここでエラーです
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\Problem_Solving\chapter2_del_list_dict.py", line 18, in <module>
time1 = t1.timeit(number=1000)
File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\timeit.py", line 178, in timeit
timing = self.inner(it, self.timer)
File "<timeit-src>", line 6, in inner
KeyError: 280015
助けてくれてありがとう!
このタイプのものは、正確な方法でテストするのが難しいです。 1つの可能性は、リスト/辞書の作成をテスト済みのスニペットに移動することです。これは、テストされたタイミングを膨らませますが、あなたはリスト/ディクテーションの作成時間だけを別々にテストし、削除時間を見積もるためにそれを減算することができます。 – BrenBarn