Posso fazer minha pergunta melhor apenas dando um exemplo. Digamos que eu queira usar uma compreensão de lista para gerar um conjunto de tuplas de 3 elementos a partir de dois loops, algo assim:
[ (y+z,y,z) for y in range(10) if y%2==0 for z in range(20) if z%3==0 ]
Isso funciona, me dando
[(0, 0, 0), (3, 0, 3), (6, 0, 6), (9, 0, 9), (12, 0, 12), (15, 0, 15), ... ]
Estou pensando, porém, se há uma maneira de fazer isso de forma mais limpa, algo como
[ (x,y,z) for y in range(10) if y%2==0 for z in range(20) if z%3==0 ... somehow defining x(y,z) ... ]
Eu consideraria algo assim mais limpo, especialmente porque o que eu realmente preciso fazer é muito mais complicado do que o exemplo que dou aqui. Tudo o que tentei me deu um erro de sintaxe.