Pythonic 3 (시퀀스 슬라이싱) - python series 3
Categories: Python
Tags: cleancode, codingskill, PEP8, python
❓ 시퀀스를 슬라이스 해보자
파이썬은 시퀀스를 슬라이스 할 수 있는데, 최소한의 방법으로 부분집합에 접근할 수 있다. 가장 간단한 빌트인 타입은 list, str, bytes인데 __getitem__
과 __setitem__
이라는 메서드를 구현하는 클래스에도 적용이 가능하다.
❗ 기본 방법
✓ 기본 형태는 list[start:end]
이며 start는 포함, end는 제외한다.
example_list = ['a','b','c','d','e','f','g']
print(a[:4]) -> a b c d -> 처음부터나 끝부터일 때는 0을 생략가능함.
print(a[1:4]) -> b c d
print(a[-4:]) -> d e f g
print(a[2:-2]) -> c d e
슬라이싱은 start와 end가 범위를 벗어나도 적절하게 처리한다.(직접 접근은 에러)
❗ 슬라이스의 결과
✓ 슬라이싱의 결과는 완전 새로운 리스트이다. 물론 원본 리스트에 대한 객체 참조는 유지되지만, 원본 리스트에 영향을 끼치지 않는다.
또한 범위에 할당을 할 시, 원소의 수가 달라도 된다. 무슨말이냐 하면 다음을 보자.
num_list = [1,2,3,4,5,6,7,8,9,10]
num_list[1:9] = [3,4,5]
--> [1,3,4,5,10]
위와 같이 늘어나거나 자동으로 줄게 된다.
❗ 복사
✓ 시작과 끝 인덱스를 생략하고 슬라이스 하면 복사본을 얻게 된다.
😎 핵심
- 범위를 벗어나도 허용한다.
Leave a comment