Why is map() preferable in this case?

R

Ray

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
 
D

Devan L

Ray said:
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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,904
Latest member
HealthyVisionsCBDPrice

Latest Threads

Top