Przetestowałem dwa sposoby odwrócenia listy w python.Dlaczego l.insert (0, i) jest wolniejsza niż l.append (i) w pythonie?
import timeit
value = [i for i in range(100)]
def rev1():
v = []
for i in value:
v.append(i)
v.reverse()
def rev2():
v = []
for i in value:
v.insert(0, i)
print timeit.timeit(rev1)
print timeit.timeit(rev2)
Co ciekawe, druga metoda wstawiająca wartość do pierwszego elementu jest znacznie wolniejsza niż pierwsza.
20.4851300716
73.5116429329
Dlaczego tak jest? Pod względem działania wkładanie elementu do głowy nie wydaje się tak drogie. Jest to operacja
Użyj bazy danych, jeśli potrzebujesz listy danych połączonych, takich jak: http://docs.python.org/2/library/collections.html#collections.deque –