이번 장에서는 파이썬의 시퀀스 슬라이싱 문법을 정리한다. 슬라이싱의 대상이 되는 것은 파이썬 내장 타입인 list
, str
, bytes
와 __getitem__
과 __setitem__
이라는 특별한 메서드를 구현하는 파이썬의 클래스이다.
이번 포스팅은 다음의 링크를 참조하였다.
슬라이싱의 기본 문법
- 슬라이싱 문법의 기본 형태:
some_list[start:end]
start 인덱스
는 포함되고 end 인덱스
는 제외
- 슬라이싱 예시:
슬라이싱 및 인덱싱 범위
- 슬라이싱은
start 인덱스
/end 인덱스
가 경계를 벗어나도 적절히 처리
리스트의 할당
- 슬라이싱의 결과는 완전히 새로운 리스트:
- 주의) 슬라이싱은 Deep copy처럼 보이지만 사실은 Shallow copy
Shallow copy / Deep copy
- 단순 객체 복제
list
와 같은 mutable
객체는 원본/사본이 동일한 객체를 참조
- 숫자, 문자열 등의
immutable
객체는 원본/사본이 동일한 객체를 참조하지 않음
- Shallow copy
- 단숫 객체 복제/shallow copy의 차이점:
- 복합 객체(
list
)는 별도 생성
- 내용물은 원본 객체의 내용물을 참조
- 슬라이싱도 Shallow copy이므로
mutable
한 item에서는 문제가
- Deep copy
mutable
한 내부 객체의 shallow copy 문제를 해결
- 복합 객체(
list
) 및 내용물 전부 새로 생성
Comments