No Python, você pode ter vários iteradores em uma compreensão de lista, como
[(x,y) for x in a for y in b]
para algumas sequências adequadas a e b. Estou ciente da semântica de loop aninhado das compreensões de lista do Python.
Minha pergunta é: um iterador na compreensão pode se referir ao outro? Em outras palavras: eu poderia ter algo parecido com isto:
[x for x in a for a in b]
onde o valor atual do loop externo é o iterador do interno?
Como exemplo, se eu tiver uma lista aninhada:
a=[[1,2],[3,4]]
qual seria a expressão de compreensão da lista para alcançar esse resultado:
[1,2,3,4]
?? (Por favor, liste apenas as respostas de compreensão, pois é isso que eu quero descobrir).
[x for b in a for x in b]
Isso sempre causou problemas em python. Essa sintaxe é muito atrasada. A forma geral dex for x in y
sempre tem a variável diretamente após o for, alimenta a expressão à esquerda do for. Assim que você faz uma dupla compreensão, sua variável iterada mais recentemente fica subitamente tão "longe". É estranho, e não lê naturalmente