On Sat, 15 Dec 2007 06:46:44 +0000, Steven D'Aprano wrote: > Here's how *not* to use it to do what you want: > >>>> arrays = [[1, 2, 3, 4], [101, 102, 103, 104]] tupl = tuple("ab") >>>> map(lambda alist, x: alist.append(x), arrays, tupl) > [None, None] >>>> arrays > [[1, 2, 3, 4, 'a'], [101, 102, 103, 104, 'b']] > > It works, but is confusing and hard to understand, and the lambda > probably makes it slow. Don't do it that way.
As Gary Herron points out, you don't need to use lambda: map(list.append, arrays, tupl) will work. I still maintain that this is the wrong way to to it: taking the lambda out makes the map() based solution marginally faster than the explicit loop, but I don't believe that the gain in speed is worth the loss in readability. (e.g. on my PC, for an array of 900000 sub-lists, the map() version takes 0.4 second versus 0.5 second for the explicit loop. For smaller arrays, the results are similar.) -- Steven. -- http://mail.python.org/mailman/listinfo/python-list