Hola comunidad. Estoy haciendo miniproyectos de Python (soy un principiante) y encontré uno que me interesó que es hacer un Cuadrado Latino, no tenía idea de como hacerlo así que comencé a buscar ejemplos de código y encontre uno así:
a = [1,2,3,4]
n = len(a)
[[a[i - j] for i in range(n)] for j in range(n)]
Mi problema comienza, cuando (debido a ser un principiante) no entiendo como se evalúa la for loop.
Para entenderlo mejor traté de hacer lo siguiente:
>>> [[(i,j) for i in range(3)] for j in range(3)]
[[(0, 0), (1, 0), (2, 0)], [(0, 1), (1, 1), (2, 1)], [(0, 2), (1, 2), (2, 2)]]
Esto es lo que principalmente no entiendo: (0,0), (1,0), (2,0)
¿Porqué el cero no cambia como el otro dígito?
Al parecer simplemente el primer dígito sigue con la secuencia: (0,0), (1,0), (2,0)
Y por último la pregunta que me parece más importante:
¿Cuál es la lógica que sigue la for loop para hacer esta línea de código?
[[(0, 0), (1, 0), (2, 0)], [(0, 1), (1, 1), (2, 1)], [(0, 2), (1, 2), (2, 2)]]
Gracias por leer y responder (Espero haberme explicado bien)