podwójna lista pythonów dla

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]

To mnie oszukuje.
Rozumiem, że elem to listy z listyfor elem in vic
Nie do końca rozumiem użycienum ifor num in elem na początku i na końcu.

Jak Python to interpretuje?
Jaka jest kolejność?

questionAnswers(3)

yourAnswerToTheQuestion