Why is map() preferable in this case?

Discussion in 'Python' started by Ray, Sep 19, 2005.

  1. Ray

    Ray Guest


    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?

    Ray, Sep 19, 2005
    1. Advertisements

  2. Ray

    Devan L Guest

    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.
    Devan L, Sep 19, 2005
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.