我有一个大字典,需要经常查找其中的值。我的键是整数,但表示标签,因此不需要进行加减等操作。我最终尝试了通过字符串键和整数键字典之间的访问时间来评估其访问时间,以下是结果。
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
这是否证明使用字符串作为键的字典比使用整数作为键更快访问?