문제
다음 코드는 Python으로 실행한다. 출력 결과를 두 줄로 작성하시오.
정답
AUTH>CHECK>PASS|STORE>COMMIT AUTH>CHECK>PASS|AUTH>CHECK>PASS
해설
route.copy()는 바깥 리스트만 복사하므로 처음에는 두 내부 리스트가 공유된다. shadow[1] = shadow[0]은 shadow의 두 번째 칸만 첫 번째 내부 리스트로 재연결한다. 따라서 route의 두 번째 리스트에 추가한 COMMIT은 shadow에 보이지 않고, PASS는 shadow의 두 칸이 함께 가리키는 첫 리스트에 추가되어 route[0]과 shadow의 두 칸에 모두 나타난다.