Giovanni Bajo wrote: > python -mtimeit "sum(int(L) for L in xrange(3000))" > 100 loops, best of 3: 5.04 msec per loop > > python -mtimeit "import itertools; sum(itertools.imap(int, > xrange(3000)))" 100 loops, best of 3: 3.6 msec per loop > > I thought the two constructs could achieve the same speed.
What does it give you with: python -mtimeit -s "g = (int(L) for L in xrange(3000))" "sum(g)" ? I get: python -mtimeit "import itertools; sum(itertools.imap(int, xrange(3000)))" 100 loops, best of 3: 3.99 msec per loop python -mtimeit -s "import itertools" "sum(itertools.imap(int, xrange(3000)))" 100 loops, best of 3: 3.97 msec per loop python -mtimeit "sum(int(L) for L in xrange(3000))" 100 loops, best of 3: 6.76 msec per loop python -mtimeit -s "g = (int(L) for L in xrange(3000))" "sum(g)" 1000000 loops, best of 3: 1.09 usec per loop The generator comprehension needs to create a new generator each time around. Tim Delaney -- http://mail.python.org/mailman/listinfo/python-list