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