Ho un ampio dizionario da cui devo cercare valori molte volte. Le mie chiavi sono numeri interi ma rappresentano etichette quindi non devono essere aggiunte, sottratte, ecc ... Ho finito per provare a valutare il tempo di accesso tra la chiave di stringa e il dizionario di chiavi intero e qui è il risultato.Confronto velocità di accesso dizionario con chiave intera contro chiave stringa
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))
che produce leggere variazioni tra le esecuzioni riprodotte ogni volta:
string key in Dint 4.5552944017
int key in Dint 7.14334390267
string key in Dstr 6.69923791116
int key in Dstr 5.03503126455
vuol dimostrare che utilizzando il dizionario con le stringhe come chiavi è più veloce per l'accesso che con numeri interi come chiavi?
Sarebbe molto più bello se si usasse più di una chiave. – Marcin