dupla compreensão da lista python para

vec = [[1,2,3], [4,5,6], [7,8,9]]
print [num for elem in vec for num in elem]      <----- this

>>> [1, 2, 3, 4, 5, 6, 7, 8, 9]

Isso está me enganando.
Eu entendo elem é as listas dentro da lista defor elem in vic
Eu não entendo muito bem o uso denum&nbsp;efor num in elem&nbsp;no começo e no fim.

Como o Python interpreta isso?
Qual é a ordem que olha?