Pojedyncza linia zagnieżdżona dla pętli

| |

Napisałem tę funkcję w Pythonie, która transponuje macierz:

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) ] 

W trakcie zdałem sobie sprawę, że nie do końca rozumiem, jak zagnieżdżona jest pojedyncza linia wykonywania pętli for. Pomóż mi zrozumieć, odpowiadając na następujące pytania:

  1. W jakiej kolejności wykonuje się pętla for?
  2. Gdybym miał potrójną zagnieżdżoną pętlę for , w jakiej kolejności by to wykonał?
  3. Jaka byłaby równa pętla równa niezagnieżdżonej for?

Dane,

[ function( i,j) for i,j w obiekcie ] 
  1. Jaki musi być typ obiektu, aby użyć tego dla struktury pętli?
  2. Jaka jest kolejność w którym i i j są przypisane do elementów w obiekcie?
  3. Czy może to być symulowane przez inną strukturę pętli for?
  4. Czy ta pętla for może być zagnieżdżona z podobną lub inną strukturą dla pętla? A jak by to wyglądało?

Addi Informacje te są również mile widziane.