2차원 리스트를 1차원으로 펴는 코드를 봤는데 for 순서를 아무리 봐도 이해가 안 가서요.
이런 matrix가 있을 때요.
matrix = [[1, 2], [3, 4], [5, 6]]
flat = [num for row in matrix for num in row]
print(flat)
결과는 [1, 2, 3, 4, 5, 6] 이렇게 잘 나와요. 근데 저 for 두 개 순서가 왜 저런지 모르겠어요.
제 머릿속에서는 num을 먼저 꺼내려면 num for num in row가 앞에 와야 될 것 같고, row를 도는 for가 오른쪽 바깥에 있어야 자연스러운 거 아닌가 싶거든요. 그래서 저는 처음에 이렇게 썼다가 에러났어요.
flat = [num for num in row for row in matrix]
일반 for문으로 풀면 바깥 for가 matrix고 안쪽 for가 row잖아요. 근데 컴프리헨션에서는 이 순서를 어떻게 읽어야 맞는 건가요? 왜 왼쪽 for가 바깥이 되는지 좀 풀어서 설명해주시면 좋겠어요.