Comprensión de listas anidadas

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.
Output
A1 B1 C1 D1 E1 F1 G1 H1
A2 B2 C2 D2 E2 F2 G2 H2
A3 B3 C3 D3 E3 F3 G3 H3
A4 B4 C4 D4 E4 F4 G4 H4
A5 B5 C5 D5 E5 F5 G5 H5
A6 B6 C6 D6 E6 F6 G6 H6
A7 B7 C7 D7 E7 F7 G7 H7
A8 B8 C8 D8 E8 F8 G8 H8
Consejo
Puedes usar una condición de una sola línea para determinar si estás imprimiendo un salto de línea como el parámetro end del método print.
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue