Когда я читаю статьи о скорости циклов и списков, а не карт, я обычно нахожу этот список, если он быстрее, чем карта при использовании лямбда-функций.
Вот тест, который я выполняю:
import timeit
def square(range):
squares = []
for number in range:
squares.append(number*number)
return squares
print(timeit.timeit('map(lambda a: a*a, range(100))', number = 100000))
print(timeit.timeit('[a*a for a in range(100)]', number = 100000))
print(timeit.timeit('square(range(100))', 'from __main__ import square', number = 100000))
и результаты:
0.03845796199857432
0.5889980600004492
0.9229458660011005
, поэтому карта является абсолютным победителем, хотя и с использованием лямбда-функции.Произошло ли изменение в Python 3.7, вызвавшее это заметное повышение скорости?