Wenn man mit 2D-Listen arbeitet, ist es ebenfalls möglich, mithilfe einer List Comprehension über die Elemente zu iterieren.
grid = [
[10, 20, 30],
[40, 50, 60],
]
squared = [[i * i for i in row] for row in grid]
print(squared)
# [[100, 400, 900], [1600, 2500, 3600]]
Hier geht die äußere Schleife Zeile für Zeile durch grid. Dann iterieren wir über jedes Element in einer Zeile.
Wenn wir kein 2D-Listen-Ergebnis haben möchten, können wir die grid abflachen, indem wir die inneren Klammern weglassen und das for i in row aus der inneren Schleife herausziehen. Wir iterieren zuerst über die grid mit for row in grid und dann mit for i in row:
grid = [
[10, 20, 30],
[40, 50, 60],
]
squared = [i * i for row in grid for i in row]
print(squared)
# [100, 400, 900, 1600, 2500, 3600]
Herausforderung
Können Sie eine List Comprehension verwenden, um alle Koordinaten eines Schachbretts auszugeben?
Die Zahlen gehen von 1 bis 8, und die Buchstaben sind A B C D E F G H. Die Nummerierung sieht so aus: A1 B1 C1 ... H1, die nächste Zeile ist A2 B2 C2 ... H2 usw. Geben Sie jede Zeile separat aus.