Pythonic 3 (시퀀스 슬라이싱) - python series 3

Date:     Updated:

Categories:

Tags: , , ,

❓ 시퀀스를 슬라이스 해보자

파이썬은 시퀀스를 슬라이스 할 수 있는데, 최소한의 방법으로 부분집합에 접근할 수 있다. 가장 간단한 빌트인 타입은 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