← 회차 전체 문제정처LAB 자체 제작내용 검수 완료정처LAB 정보처리기사 필기 자체 제작 3회 · 프로그래밍 언어 활용 · Python 복사 · 76번
Python에서 내부 리스트까지 복사한 뒤 값을 추가했을 때 출력은?
a = [[1], [2]]
b = [row[:] for row in a]
b[0].append(9)
print(len(a[0]), len(b[0]))
- 1
1 1
오답 이유`1 1`은 `append(9)`가 실행되지 않았다고 본 결과다. b[0]에는 9가 추가되어 길이가 2가 된다. - 2
1 2
정답 근거각 `row[:]`가 새 내부 리스트를 만들므로 a[0]은 길이 1을 유지하고 b[0]만 길이 2가 되어 정답이다. - 3
2 1
오답 이유`2 1`은 원본 a만 변경된다고 본 결과지만 append의 대상은 b[0]이다. - 4
2 2
오답 이유`2 2`는 a와 b가 내부 리스트를 공유하는 얕은 복사 결과다. 리스트 컴프리헨션에서 각 행을 슬라이스했으므로 공유하지 않는다.
정답·상세해설정답 2번
리스트 컴프리헨션에서 각 내부 행을 `row[:]`로 따로 복사했으므로 a와 b는 내부 리스트도 공유하지 않는다. b[0]만 길이 2가 되고 a[0]은 길이 1로 남는다.
콘텐츠 기록콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 최종 검수
- 2026-08-16