Why is map() preferable in this case?

Ray ray_usenet at yahoo.com
Sun Sep 18 23:06:39 EDT 2005


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!
Ray




More information about the Python-list mailing list