Python list comprehension, unpacking and multiple operations
>>> import itertools
>>> list(itertools.chain.from_iterable(y))
[0, 0, 1, 1, 2, 4, 3, 9, 4, 16, 5, 25, 6, 36, 7, 49, 8, 64, 9, 81]
Use a nested list comprehension:
result = [a for tup in y for a in tup]
Example:
>>> x = range(10)
>>> y = [(i,j**2) for i,j in zip(x,x)]
>>> [a for tup in y for a in tup]
[0, 0, 1, 1, 2, 4, 3, 9, 4, 16, 5, 25, 6, 36, 7, 49, 8, 64, 9, 81]
This will work fine for your more general case as well, or you could do it all in one step:
y = [a for i in x for a in (i, sqrt(i), i**3, some_operation_on_i, f(i), g(i))]
In case the nested list comprehensions look odd, here is how this would look as a normal for
loop:
y = []
for i in x:
for a in (i, sqrt(i), i**3, some_operation_on_i, f(i), g(i)):
y.append(a)