정보처리기사 파이썬, 리스트 대입과 복사에서 출력이 달라지는 이유

정보처리기사 프로그래밍언어활용을 공부하면서 파이썬 출력 문제를 연습할 때에는 이름과 실제 리스트를 구분해 보세요. b = a와 b = a[:]는 처음 보이는 값이 같아도 나중에 원소를 추가하면 결과가 달라질 수 있습니다. 아래 예는 파이썬 공식 자습서의 리스트 규칙을 적용한 연습입니다.

실행하기 전 종이에 적을 상태

확인할 항목 내용
초기값 a = [2, 4]로 시작합니다. 종이에 상자 하나를 그리고 2와 4를 담은 뒤 a라는 이름을 상자에 연결합니다.
같은 객체를 가리키기 b = a라고 쓰면 b도 그 상자를 가리킵니다. b.append(6)을 실행하면 같은 리스트에 원소가 추가되므로 a를 출력해도 [2, 4, 6]입니다.
새 바깥 리스트 만들기 처음부터 다시 a = [2, 4]로 시작해 b = a[:]로 바꿉니다. b.append(6) 뒤에 b는 [2, 4, 6]이고 a는 [2, 4]로 남습니다.

안쪽에도 리스트가 있으면 어떻게 될까

이번에는 a = [[1], [2]]이고 b = a[:]라고 합시다. 바깥 리스트는 새로 생기지만 안쪽 리스트까지 새로 복제된 것은 아닙니다. b[0].append(9)를 실행하면 a[0]을 출력한 값도 [1, 9]입니다. 이 경우 바꾼 대상은 바깥 리스트가 담고 있는 첫 번째 안쪽 리스트입니다.

마지막으로 b[0] = [7]처럼 바깥 리스트의 한 칸을 새 리스트로 교체해 보세요. 이번에는 a[0]은 여전히 [1, 9]이고 b[0]은 [7]입니다. 같은 대괄호가 나와도 어느 객체의 내용이나 연결을 바꾸는지 그리면 결과를 따라갈 수 있습니다.

예제는 개념 학습용입니다. 시험연도별 출제기준은 Q-Net을, 파이썬 리스트의 동작은 공식 자습서를 참고하세요.

함께 읽기 2026 정보처리기사 3회 실기 시험일정|정보처리 실무 필답형

공식 자료

댓글 남기기