En Python que puede tener múltiples iteradores en una lista por comprensión, comoiteración doble en lista por comprensión
[(x,y) for x in a for y in b]
para algunas secuencias de a y b adecuados. Soy consciente de la semántica de bucle anidado de las listas de comprensión de Python.
Mi pregunta es: ¿Puede un iterador en la comprensión referirse al otro? En otras palabras: ¿Podría tener algo como esto:
[x for x in a for a in b]
donde el valor actual del bucle externo es el iterador del interior?
A modo de ejemplo, si tengo una lista anidada:
a=[[1,2],[3,4]]
lo que sería la expresión lista por comprensión ser lograr este resultado:
[1,2,3,4]
?? (Por favor, solo haga una lista de respuestas de comprensión, ya que esto es lo que quiero averiguar).
La sintaxis de comprensión de listas no es uno de los puntos brillantes de Python. –
@Glenn Sí, se complica fácilmente por algo más que simples expresiones. – ThomasH
Ew. No estoy seguro de que este sea el uso "habitual" para las listas de comprensión, pero es muy desafortunado que el encadenamiento sea tan desagradable en Python. –