Perché il costruttore di dict Python è più lento della sintassi letterale?Perché la sintassi del dict letterale è preferibile rispetto al costruttore di dict?
Dopo acceso dibattito con il mio collega, ho fatto qualche confronto e ottenuto le seguenti statistiche:
python2.7 -m timeit "d = dict(x=1, y=2, z=3)"
1000000 loops, best of 3: 0.47 usec per loop
python2.7 -m timeit "d = {'x': 1, 'y': 2, 'z': 3}"
10000000 loops, best of 3: 0.162 usec per loop
Qual è il motivo per il costruttore è più lento? E in quali situazioni, se ce ne sono, sarebbe più veloce?
Di solito questo ha a che fare con il fatto che 'dict' potrebbe indicare qualcos'altro. Quindi l'interprete non può fare alcuna vera ottimizzazione. Con la sintassi '{}', può fare quelle ottimizzazioni. –
cioè: 'dict' è sempre una vera chiamata di funzione, mentre' {} 'viene gestito in fase di compilazione. – Eevee
possibile duplicato di [differenze tra "d = dict()" e "d = {}"] (http://stackoverflow.com/questions/2745008/differences-between-d-dict-and-d) –