In Python puoi avere più iteratori in una comprensione di lista, come
[(x,y) for x in a for y in b]
per alcune sequenze adatte a e b. Sono a conoscenza della semantica del ciclo nidificato delle comprensioni dell'elenco di Python.
La mia domanda è: un iteratore nella comprensione può riferirsi all'altro? In altre parole: potrei avere qualcosa del genere:
[x for x in a for a in b]
dove il valore corrente dell'anello esterno è l'iteratore dell'interiore?
Ad esempio, se ho un elenco nidificato:
a=[[1,2],[3,4]]
quale sarebbe l'espressione di comprensione dell'elenco per ottenere questo risultato:
[1,2,3,4]
?? (Elenca solo le risposte di comprensione, poiché questo è quello che voglio scoprire).
[x for b in a for x in b]
Questo è sempre stato un problema per Python. Questa sintassi è così all'indietro. La forma generale dix for x in y
ha sempre la variabile direttamente dopo il for, si nutre dell'espressione a sinistra del for. Non appena fai una doppia comprensione, la tua variabile iterata più recente è improvvisamente così "lontana". È imbarazzante e non legge affatto in modo naturale