On 23 October 2012 21:06, Joshua Landau <joshua.landau...@gmail.com> wrote:
> On 23 October 2012 21:03, Joshua Landau <joshua.landau...@gmail.com>wrote: > >> On 23 October 2012 12:07, Jean-Michel Pichavant >> <jeanmic...@sequans.com>wrote: >> >>> ----- Original Message ----- >>> >>> > Thankyou.. but my problem is different than simply joining 2 lists >>> > and it is done now :).... >>> >>> >>> A lot of people though you were asking for joining lists, you >>> description was misleading. >>> >>> I'll take a guess: you want to flatten a list of list. >>> "Nested" list comprehensions can do the trick. >>> >>> aList =[[1,5], [2,'a']] >>> [item for sublist in aList for item in sublist] >>> >>> ... >>> [1, 5, 2, 'a'] >>> >>> I find it rather difficult to read though. >> >> >> We have a library function for this, in the one-and-only itertools. >> >> >>> listoflists = [list(range(x, 2*x)) for x in range(5)] >>> >>> listoflists >>> [[], [1], [2, 3], [3, 4, 5], [4, 5, 6, 7]] >>> >>> from itertools import chain >>> >>> list(chain.from_iterable(listoflists)) >>> [1, 2, 3, 3, 4, 5, 4, 5, 6, 7] >> >> >> It does exactly what it says... fast and easy-to-read. > > > Note that I think what he really wanted is to go from > > a, b, c = [list(x) for x in (range(10), range(11, 20), range(21, 30))] > > to > >> list(range(30)) > > UNDO! UNDO! UNDO! I *meant *to say: Note that I think what he really wanted is to go from a, b, c = [list(x) for x in (range(10), range(11, 20), range(21, 30))] to > [a, b, c]
-- http://mail.python.org/mailman/listinfo/python-list