Одна строка, вложенная в циклы For

| |

Написал эту функцию на Python, которая транспонирует матрицу:

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

В процессе я понял, что не совсем понимаю, как вложена одна строка выполняются циклы for. Пожалуйста, помогите мне понять, ответив на следующие вопросы:

  1. В каком порядке выполняется этот цикл for?
  2. Если бы у меня был тройной вложенный цикл for , в каком порядке он будет выполняться?
  3. Чему будет равен равный невложенный цикл for?

Дано,

[ function( i,j) для i,j в объекте] 
  1. Какого типа должен быть объект, чтобы использовать это для структуры цикла?
  2. Каков порядок в котором i и j присваиваются элементам в объекте?
  3. Может ли это быть смоделировано с помощью другой структуры цикла for?
  4. Можно ли вложить этот цикл for с аналогичной или другой структурой for петля? И как бы это выглядело?

Addi полезная информация также приветствуется.