Cuando trabajamos con listas 2D, también es posible iterar sobre objetos utilizando una comprensión de listas.
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]]
Aquí, el bucle exterior recorre la grid fila por fila. Luego iteramos sobre cada elemento de una fila.
Si no queremos obtener una lista 2D como resultado, podemos aplanar la grid omitiendo los corchetes internos y moviendo el for i in row fuera del bucle interno. Primero iteramos sobre la grid con for row in grid y luego con 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]
Desafío
¿Puedes usar comprensión de listas para imprimir todas las coordenadas de un tablero de ajedrez?
Los números van del 1 al 8, y las letras son A B C D E F G H. La numeración es como A1 B1 C1 ... H1; la siguiente línea es A2 B2 C2 ... H2, etc. Imprime cada línea por separado.