Robert Kern wrote:
Andrey Tatarinov wrote:

anyway list comprehensions are just syntaxic sugar for

 >>> for var in list:
 >>>     smth = ...
 >>>     res.append(smth)

(is that correct?)

so there will be no speed gain, while map etc. are C-implemented


It depends.

Try

  def square(x):
      return x*x
  map(square, range(1000))

versus

  [x*x for x in range(1000)]

Hint: function calls are expensive.


Some timings to verify this:

$ python -m timeit -s "def square(x): return x*x" "map(square, range(1000))"
1000 loops, best of 3: 693 usec per loop

$ python -m timeit -s "[x*x for x in range(1000)]"
10000000 loops, best of 3: 0.0505 usec per loop

Note that list comprehensions are also C-implemented, AFAIK.

Steve
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to