Сравнение скорости доступа к словарю с целочисленным ключом против строкового ключа

У меня есть большой словарь, в котором мне приходится часто искать значения. Мои ключи - целые числа, но представляют собой метки, поэтому их не нужно складывать, вычитать и т.д.... В итоге я попытался оценить время доступа между словарем со строковым и целочисленным ключом, и вот результат.

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

Доказывает ли это, что использование словаря со строками в качестве ключей быстрее для доступа, чем с целыми числами в качестве ключей?

23
задан user2672165 21 November 2019 в 07:02
поделиться