Python lista de comprensión doble 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]

Esto me está engañando.
Entiendo que elem es la lista dentro de la lista defor elem in vic
No entiendo muy bien el uso denum yfor num in elem Al principio y al final.

¿Cómo interpreta Python esto?
¿Cuál es el orden que se ve?

Respuestas a la pregunta(3)

Su respuesta a la pregunta