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?

Respuestas a la pregunta(5)

Su respuesta a la pregunta