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