list comprehension question

Arnaud Delobelle arnodel at googlemail.com
Fri May 1 08:28:51 CEST 2009


Ross <ross.jett at gmail.com> writes:

> If I have a list of tuples a = [(1,2), (3,4), (5,6)], and I want to
> return a new list of each individual element in these tuples, I can do
> it with a nested for loop but when I try to do it using the list
> comprehension b = [j for j in i for i in a], my output is b =
> [5,5,5,6,6,6] instead of the correct b = [1,2,3,4,5,6]. What am I
> doing wrong?

When writing nested list comprehension, the for loops are in the same
order as you would write a normal nested for loop (which is not
necessarily intuitive when you first find out but is very handy in the
long run I think).

So write:

    [j for i in a for j in i]

-- 
Arnaud



More information about the Python-list mailing list