문제
아래 Python 코드의 실행결과로 올바른 것은 무엇인가?
Pythona = [[0 for a in range(2)] for b in range(3)] print(a)
① [0, 0, 0, 0, 0, 0] ② [[0, 0], [0, 0], [0, 0]] ③ [[0, 0, 0], [0, 0, 0]] ④ [[0, 0], [0, 0, 0]]
정답
2번
해설
정답: 2. 내부 리스트 [0, 0]가 바깥 반복문에 의해 3개 생성되므로 [[0, 0], [0, 0], [0, 0]]가 출력된다.
오답 풀이
- 1번: 1차원 리스트가 아니라 2차원 리스트가 생성된다.
- 2번: 길이 2의 리스트가 3개 생성되어 맞다.
- 3번: 길이 3의 리스트가 2개 생성되는 구조가 아니다.
- 4번: 각 내부 리스트의 길이는 동일하게 2이다.
보충 개념 리스트 컴프리헨션에서 안쪽 표현식이 먼저 생성되고 바깥 반복에 따라 반복된다.