> I read somewhere that the function 'map' might one day be deprecated in > favor of list comprehensions. > > But I can't see a way to do this in a list comprehension: > > >>> map (pow, [2, 2, 2, 2], [1, 2, 3, 4]) > [2, 4, 8, 16]
Hi Michael, If my hands were forcibly tied to avoid map(), I'd try something like: ######################################################## [pow(base, exponent) for (base, exponent) in zip([2, 2, 2, 2], [1, 2, 3, 4])] ########################################################## But even if map() no longer stays as a builtin, we can always get it back: ###### >>> def mymap(f, *args): ... return [f(*elts) for elts in zip(*args)] ... >>> def square(x): ... return x*x ... >>> mymap(square, range(20)) [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361] ###### (You might notice that mymap() looks very analogous to what we've done in the pow() list comprehension above.) So I would not be too concerned about what happens in Python 3000: if things change, we can route around damage. Best of wishes to you! _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor