Warum ist die Reihenfolge des Mehrfachverstehens für Listen so, wie es ist?

Ich kenne den richtigen Weg, um mehrere @ zu habfor in einer verschachtelten Liste sieht das so aus (Python 3):

lista = [[[1,2],[3],[4,5,6]],[[7],[8,9]]]

flatlista = [i for k in lista for j in k for i in j]
# results with [1, 2, 3, 4, 5, 6, 7, 8, 9]

Aber meine natürlichen Sprachinstinkte widersprechen stark. Ich hätte (fälschlicherweise) erwartet, dass der Code wie folgt lautet:

flatlista = [i for i in j for j in k for k in lista]

Die falsche Version klingt fast wie Englisch und wird von links nach rechts in einem Stream gelesen. Die richtige Version erfordert einige geschachtelte Lesefähigkeiten, die nach links und rechts überspringen, um die Bedeutung zu erfassen.

Warum ist diese Syntax so wie sie ist? Warum wurde die Sprache so aufgebaut?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage