Разница времени выполнения одной и той же задачи при разном коде
Код:
from time import time
def time_it(func):
def include(*args, **kwargs):
start = time()
total = func(*args, **kwargs)
end = time()
print(f'Время: {end - start: .3f}')
return include
@time_it
def func_for():
arr = []
for i in range(100000):
arr.append(i)
@time_it
def func_iteration():
arr = [i for i in range(100000)]
@time_it
def func_list_range():
arr = list(range(100000))
func_for()
func_iteration()
func_list_range()
Время выполнения:
#Тест №1
Время: 0.008
Время: 0.004
Время: 0.003
-----------------
#Тест №2
Время: 0.008
Время: 0.005
Время: 0.002
Вопрос:
По какой причине такая разница во времени, хотя задача одна?
Источник: Stack Overflow на русском