Python: List Comprehensiveions vs. map

Odnosząc się do tegoPython List Comprehension Vs. Mapa pytanie, czy ktoś może wyjaśnić, dlaczego ujęcie list daje lepsze wynikimap gdy zrozumienie listy nie wywołuje funkcji, nawet jeśli nie ma funkcji lambda wmap ale daje najgorszy wynik podczas wywoływania funkcji?

import timeit

print timeit.Timer('''[i**2 for i in xrange(100)]''').timeit(number = 100000)

print timeit.Timer('''map(lambda i: i**2, xrange(100))''').timeit(number = 100000)

print timeit.Timer(setup="""def my_pow(i):
    return i**2
""",stmt="""map(my_pow, xrange(100))""").timeit(number = 100000)

print timeit.Timer(setup="""def my_pow(i):
    return i**2
""",stmt='''[my_pow(i) for i in xrange(100)]''').timeit(number = 100000)

wyniki:

1.03697046805 <-- list comprehension without function call
1.96599485313 <-- map with lambda function
1.92951520483 <-- map with function call
2.23419570042 <-- list comprehension with function call

questionAnswers(1)

yourAnswerToTheQuestion