python insert vs append
He escrito fragmentos básicos de Python para insertar primero valores en una lista y luego invertirlos. Descubrí que había una gran diferencia de velocidad de ejecución entre los métodos de inserción y anexión.
Snippet 1:
L = []
for i in range(10**5):
L.append(i)
L.reverse()
Tiempo necesario para ejecutar esto:
real 0m0.070s
user 0m0.064s
sys 0m0.008s
Snippet 2:
l = []
for i in range(10**5):
l.insert(0,i)
Tiempo tomado para ejecutar:
real 0m5.645s
user 0m5.516s
sys 0m0.020s
Esperaba que el fragmento 2 funcionara mucho mejor que el fragmento 1, ya que estoy realizando la operación inversa directamente insertando los números anteriores. Pero el tiempo empleado dice lo contrario. No entiendo por qué el último método tarda más en ejecutarse, a pesar de que el método parece más elegante. ¿Alguien tiene alguna explicación para esto?