im Web hatte ich den Eindruck gewonnen, das Pythons List Comprehension aus Performancesicht besser ist als andere Alternative (Aussnahme threads etc ...)
Bei diesem simplen Beispiel ist dies aber nicht der Fall.
Code: Alles auswählen
import timeit
def p1(s):
j = [i*2 for i in s]
def p2(s):
for i in s:
j = i*2
t1 = timeit.Timer("p1(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'])", "from __main__ import p1")
print "p1: ", t1.timeit()
t2 = timeit.Timer("p2(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'])", "from __main__ import p2")
print "p2: ", t2.timeit()
print "p1: ", min(t1.repeat(100, 10000))
print "p2: ", min(t2.repeat(100, 10000))
p2: 3.11650950051
p1: 0.0429442848183
p2: 0.0300219720663
Frage: Worin besteht normalerweise der Performancegewinn bei List Comprehension oder was muss da gegeben sein, damit dies schneller ist?
Danke
Claudia