Python3: on removing map, reduce, filter
steven.bethard at gmail.com
Sun Jan 9 16:45:32 EST 2005
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.
> def square(x):
> return x*x
> map(square, range(1000))
> [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.
More information about the Python-list