Listar la versión de comprensión de “extender”

¿Hay un equivalente de 1 línea (utilizando la comprensión de lista) para lo siguiente:

a = [] for i in range(6): a.extend(((-i,i,0,2),(-i-1,i,0,6))) a = tuple(a) 

Estaba pensando algo como

 tuple(((-i,i,0,2),(-i-1,i,0,6)) for i in range(6)) 

pero esto da:

 (((0, 0, 0, 2), (-1, 0, 0, 6)), ((-1, 1, 0, 2), (-2, 1, 0, 6)), ((-2, 2, 0, 2), (-3, 2, 0, 6)), ((-3, 3, 0, 2), (-4, 3, 0, 6)), ((-4, 4, 0, 2), (-5, 4, 0, 6)), ((-5, 5, 0, 2), (-6, 5, 0, 6))) 

que no es lo que quiero.

Salida deseada

 ((0, 0, 0, 2), (-1, 0, 0, 6), (-1, 1, 0, 2), (-2, 1, 0, 6), (-2, 2, 0, 2), (-3, 2, 0, 6), (-3, 3, 0, 2), (-4, 3, 0, 6), (-4, 4, 0, 2), (-5, 4, 0, 6), (-5, 5, 0, 2), (-6, 5, 0, 6)) 

Puede utilizar una lista de comprensión anidada.

 >>> [t for i in range(6) for t in ((-i,i,0,2), (-i-1,i,0,6))] >>> [(0, 0, 0, 2), (-1, 0, 0, 6), (-1, 1, 0, 2), (-2, 1, 0, 6), (-2, 2, 0, 2), (-3, 2, 0, 6), (-3, 3, 0, 2), (-4, 3, 0, 6), (-4, 4, 0, 2), (-5, 4, 0, 6), (-5, 5, 0, 2), (-6, 5, 0, 6)] 

Se lee asi

 [what I want (t) | for loops as if writing non-listcomp code] 

y por lo tanto es equivalente a

 result = [] for i in range(6): for t in ((-i,i,0,2), (-i-1,i,0,6)): result.append(t)