Phillip Sitbon <[EMAIL PROTECTED]> wrote: > Hello there, > > I have a situation where a list of functions need to be called with a > single set of parameters and the result constructed into a tuple. I > know there's simple ways to do it via list comprehension: > > Result = tuple( [ fn(* Args, ** Kwds) for fn in fn_list ] ) > > I'd hope there's a more efficient way to do this with a built-in > function, so that I could call: > > Result = rmap( fn_list, * Args, ** Kwds ) > > and have it constructed as a tuple from the get-go. > > Is there a built-in function that would allow me to do this, or do I > have to go with the list comprehension?
A genexp is probably going to be more efficient than the list comprehension: just omit the brackets in your first snippet. map(apply, fn_list, ...) may work, but I doubt it's going to be either simple or speedy since the ... must be replaced with as many copies of Args and Kwds as there are functions in fn_list, e.g.: map(apply, fn_list, len(fn_list)*(Args,), len(fn_list)*(Kwds)) There's no built-in that calls many functions with identical args and kwds, since it's a rare need. Also, map returns a list, not a tuple, so it's bordering on the absurd to think that your dreamed-for rmap would be designed to return a tuple rather than a list -- you still have to call tuple on the result, any way you build it. Alex -- http://mail.python.org/mailman/listinfo/python-list