En Python puedes tener múltiples iteradores en una lista de comprensión, como
[(x,y) for x in a for y in b]
para algunas secuencias adecuadas a y b. Soy consciente de la semántica de bucle anidado de las comprensiones de listas 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 interno?
Como ejemplo, si tengo una lista anidada:
a=[[1,2],[3,4]]
¿Cuál sería la expresión de comprensión de la lista para lograr este resultado?
[1,2,3,4]
?? (Por favor, solo enumere las respuestas de comprensión, ya que esto es lo que quiero averiguar).
[x for b in a for x in b]
Esto siempre ha sido molesto sobre python. Esta sintaxis es muy al revés. La forma general dex for x in y
siempre tiene la variable directamente después de for, alimenta la expresión a la izquierda de for. Tan pronto como haces una doble comprensión, tu variable iterada más recientemente está repentinamente tan "lejos". Es incómodo y no se lee de forma natural en absoluto