더북(TheBook)

BETTER WAY 5
시퀀스를 슬라이스하는 방법을 알자

 

 

파이썬은 시퀀스를 슬라이스(slice; 자르기)해서 조각으로 만드는 문법을 제공한다. 이렇게 슬라이스하면 최소한의 노력으로 시퀀스 아이템의 부분집합(subset)에 접근할 수 있다. 가장 간단한 슬라이싱 대상은 내장 타입인 list, str, bytes이다. __getitem____setitem__이라는 특별한 메서드를 구현하는 파이썬의 클래스에도 슬라이싱을 적용할 수 있다(Better way 28 “커스텀 컨테이너 타입은 collections.abc의 클래스를 상속받게 만들자” 참고).

슬라이싱 문법의 기본 형태는 somelist[start:end]이며, 여기서 start 인덱스는 포함되고 end 인덱스는 제외된다.

a = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’]

print(‘First four:’, a[:4])

print(‘Last four: ‘, a[-4:])

print(‘Middle two:’, a[3:-3])

 

>>>

First four: [‘a’, ‘b’, ‘c’, ‘d’]

Last four:  [‘e’, ‘f’, ‘g’, ‘h’]

Middle two: [‘d’, ‘e’]

 

리스트의 처음부터 슬라이스할 때는 보기 편하게 인덱스 0을 생략한다.

assert a[:5] == a[0:5]

 

리스트의 끝까지 슬라이스할 때도 마지막 인덱스는 넣지 않아도 되므로 생략한다.

assert a[5:] == a[5:len(a)]

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.