다음 Python 코드를 실행했을 때의 출력값을 쓰시오.
groups = [[number] for number in (1, 2, 3, 4)]
view = list(groups)
for index in range(1, len(view)):
view[index].extend(view[index - 1])
print(sum(map(len, groups)))모범답안
10
풀이와 판단 근거
list(groups)는 바깥 리스트만 새로 만들고 안쪽 리스트 객체는 groups와 view가 공유한다. index 1부터 extend가 수행되면서 안쪽 리스트 길이는 차례로 1, 2, 3, 4가 되고 이 변경은 groups에서도 그대로 보인다.
따라서 길이 합은 1+2+3+4인 10이다. 깊은 복사라면 원본 안쪽 리스트 길이는 모두 1로 남는다는 점과 대비된다.
자주 틀리는 지점
- list()가 내부 리스트까지 깊은 복사한다고 판단
- extend가 새 리스트를 반환해 원본은 바뀌지 않는다고 판단
- 마지막 리스트 길이 4만 출력한다고 계산
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.