PRACTICE MATERIAL

python · 코드와 실행 결과 36

「python」 문맥에 삽입된 원본 코드와 실행 결과이다. Python 객체·자료형과 복사 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.

192 × 90원본 이미지
CONCEPT → PRACTICE → VERIFICATION

얕은 복사의 바깥 목록과 안쪽 목록을 따로 변경하기

객체 복사 뒤 어떤 참조가 분리되고 어떤 참조가 남는지 실제 변경 결과로 추적한다.

  1. 바깥 목록의 항목 교체를 확인한다a.copy()는 새 바깥 리스트를 만들고 원소에 대한 참조를 복사한다. a[0]을 100으로 바꾸는 연산은 a의 첫 번째 칸이 가리키는 객체를 교체한다.
  2. 공유된 안쪽 객체의 변경을 추적한다a[2][0]을 바꾸면 먼저 a[2]가 가리키는 내부 리스트를 찾고 그 객체의 첫 칸을 변경한다. b[2]도 같은 내부 리스트를 참조하므로 b로 읽어도 변경이 보인다.
  3. deepcopy는 내부 객체도 대조해서 검증한다두 번째 사진에서는 copy.copy와 deepcopy로 만든 바깥 객체의 id가 다르게 나온다. 바깥 id 세 개만으로 내부 객체가 분리되었다는 사실까지 직접 확인할 수는 없다.
명령·설정·결과 해석을 본문에서 이어서 읽기 →
python · 코드와 실행 결과 36
이미지를 누르면 원본 크기로 열립니다. 작은 명령·패킷 필드는 이미지를 확대해 확인하세요.

연결된 개념