ich hab mir mal gedanken gemacht, was die "List Comprehensions" in Python 2.2 eigentlich bringen, sie sollen ja map und filter ersetzen. Naja, testet mal selbst.
Code: Alles auswählen
#!/usr/bin/env python
from time import clock
max = 200000
liste = range(ord("a"),ord("z")+1)
def forloop(n, f):
for i in xrange(n):
tmp = f()
print "Teste map()"
print "map(chr, liste)"
a = clock()
forloop(max, lambda : (map(chr, liste)) )
b = clock()
lzm = b-a
print "Laufzeit = %.3f\n" % lzm
print "Teste for"
print "([chr(x) for x in liste])"
a = clock()
forloop(max, lambda : ([chr(x) for x in liste]) )
b = clock()
lzl = b-a
print "Laufzeit = %.3f\n" % lzl
if lzl > lzm:
print "Ein map(chr, liste) ist %.2f mal schneller als ein [ chr(x) for x in liste]" % (lzl/lzm)
else:
print "Ein [ chr(x) for x in liste] ist %.2f mal schneller als ein map(chr, liste)" % (lzm/lzl)
print
Gruß
Dookie