Indeed, you are correct. This is described in detail in the Expressions section in the Python Language Reference.
Note especially the order of nesting of several for
s in a single list comprehension, which is always left-to-right:
>>> matrix = [[1, 2], [3, 4]]
>>> [item for item in row for row in matrix] # oops!
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
[item for item in row for row in matrix]
NameError: name 'row' is not defined
>>> [item for row in matrix for item in row] # nesting is in left-to-right order
[1, 2, 3, 4]