[EMAIL PROTECTED] wrote: > Is there a good way to splice two lists together without resorting to a > manual loop? Say I had 2 lists: > > l1 = [a,b,c] > l2 = [1,2,3] > > And I want a list: > > [a,1,b,2,c,3] as the result.
Our good friend itertools can help us out here: >>> from itertools import chain, izip >>> x = ['a', 'b', 'c'] >>> y = [1, 2, 3] >>> list(chain(*izip(x, y))) ['a', 1, 'b', 2, 'c', 3] >>> # You can splice more than two iterables at once too: >>> z = ['x', 'y', 'z'] >>> list(chain(*izip(x, y, z))) ['a', 1, 'x', 'b', 2, 'y', 'c', 3, 'z'] >>> # Cleaner to define it as a function: >>> def splice(*its): return list(chain(*izip(*its))) >>> splice(x, y) ['a', 1, 'b', 2, 'c', 3] >>> splice(x, y, z) ['a', 1, 'x', 'b', 2, 'y', 'c', 3, 'z'] --Ben -- http://mail.python.org/mailman/listinfo/python-list