私は大量の辞書を取得しており、そこから多くの値を検索する必要があります。私のキーは整数ですが、ラベルを表すので、追加、減算などは必要ありません。文字列キーと整数キー辞書の間のアクセス時間を評価しようとしましたが、結果はここにあります。実行間のわずかな変化を生じ文字列キーに対する整数キーとの辞書のアクセス速度の比較
from timeit import Timer
Dint = dict()
Dstr = dict()
for i in range(10000):
Dint[i] = i
Dstr[str(i)] = i
print 'string key in Dint',
print(Timer("'7498' in Dint", "from __main__ import Dint").timeit(100000000))
print 'int key in Dint',
print(Timer("7498 in Dint", "from __main__ import Dint").timeit(100000000))
print 'string key in Dstr',
print(Timer("'7498' in Dstr", "from __main__ import Dstr").timeit(100000000))
print 'int key in Dstr',
print(Timer("7498 in Dstr", "from __main__ import Dstr").timeit(100000000))
は毎回再現:
string key in Dint 4.5552944017
int key in Dint 7.14334390267
string key in Dstr 6.69923791116
int key in Dstr 5.03503126455
それがキーとして文字列と辞書を使用すると、キーとして整数よりもアクセスが高速であることを証明していますか?
複数のキーを使用した方がかなり良いでしょう。 – Marcin