Python: Listenverständnis vs. Karte
Darauf verweisenPython List Comprehension Vs. Karte Frage, kann jemand erklären, warum List Comprehensions bessere Ergebnisse liefertmap
wenn das Listenverständnis keine Funktion aufruft, auch wenn in der keine Lambda - Funktion vorhanden istmap
gibt aber das schlechteste ergebnis beim aufruf einer funktion?
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)
Ergebnisse:
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