Why is map() preferable in this case?

Devan L devlai at gmail.com
Mon Sep 19 05:10:12 CEST 2005


Ray wrote:
> Hello,
>
> I'm just reading the latest edition of Python Cookbook, where it says
> in Recipe 4.2:
>
> "when the op you wanna perform on each item is to call a function on
> the item and use the function's result, use L1 = map(f, L), rather than
> L1 = (f(x) for x in L)"
>
> What is wrong with the generator expression (or maybe it is list
> comprehension, I cannot remember now whether they used [] or () in the
> book)? Is it for clarity? I'm a newbie, and to me, the
> generator/comprehension looks _way_ more clearer than map(f, L).
>
> Are there any performance/memory requirements I'm not aware of? Why
> would one want to use map() when there's already an expression that is
> so clear and easy to understand?
>
> Thanks!

Map is in C. It's faster, but not as clear. Some people do think map(f,
L) is nicer though. Google is your friend here, if you want to read the
old arguments.
> Ray




More information about the Python-list mailing list