Bucles For anidados de una sola línea

| |

Escribí esta función en python que transpone una matriz:

def transpose(m): altura = len(m) ancho = len(m[0]) return [ [ m[i ][j] for i in range(0, height) ] for j in range(0, width) ] 

En el proceso me di cuenta de que no entiendo completamente cómo se anida una sola línea Los bucles for se ejecutan. Por favor, ayúdenme a comprender respondiendo las siguientes preguntas:

  1. ¿Cuál es el orden en que se ejecuta este bucle for?
  2. Si tuviera un bucle for anidado triple , ¿en qué orden se ejecutaría?
  3. ¿Cuál sería igual al bucle for igual no anidado?

Dado,

[ función( i,j) for i,j in object ] 
  1. ¿Qué tipo debe tener el objeto para usar esta estructura de bucle for?
  2. ¿Cuál es el orden en el que i y j se asignan a elementos en el objeto?
  3. ¿Se puede simular con una estructura de bucle for diferente?
  4. ¿Se puede anidar este bucle for con una estructura similar o diferente para bucle? ¿Y cómo se vería?

Addi También se agradece la información adicional.