このコードを動作させるのにますます疲れて困惑しています。これは、「データ構造とアルゴリズムによる問題解決」Web教科書からのアルゴリズム分析課題です。それは、リスト要素と辞書要素を削除するのにかかる時間を比較するよう求められます。リスト削除時間のテストはうまくいきますが、辞書要素を削除しようとすると、キーエラーが発生します。なぜこれがそうだと誰が説明できますか?timeitを使用して辞書のキーの削除時間をテストする際のPythonのキーエラー
import timeit
import pylab
x_list = []
delList_list = []
delDictionary_list = []
delDictionary = timeit.Timer("del x[0]",
"from __main__ import x")
delList = timeit.Timer("del x[100]",
"from __main__ import x")
for i in range(10000,100001,20000):
x_list.append(i)
x = list(range(i))
delListTime = delList.timeit(number=1000)
delList_list.append(delListTime)
x = {j:None for j in range(i)}
delDictTime = delDictionary.timeit(number = 1000)
delDictionary_list.append(delDictTime)
pylab.xlabel('Size')
pylab.ylabel('Time to complete contains operation')
pylab.plot(x_list, delList_list, 'c')
pylab.plot(x_list, delDictionary_list, 'm')
pylab.show()
入手しているエラーメッセージ(スタックトレース)を添付してください。 – Pedru
'x = {j:範囲(i)のjのためのなし}' x = dict.fromkeys(range(i)) 'で置き換えることができます。 –