Сегодня я наблюдал интересное поведение при использовании Python.
def f():
ls1 = []
for x in range(1000000):
ls1.append(x)
%timeit f()
77.2 ms ± 1.83 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
И проверил вторую функцию.
def f2():
ls1 = []
lsa = ls1.append
for x in range(1000000):
lsa(x)
%timeit f2()
56 ms ± 566 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
Назначение добавления к переменной было быстрее, чем использование добавления внутри цикла.
Почему вторая функция быстрее?