11. 시퀀스를 슬라이싱하는 방법을 익히자.
슬라이싱 구문의 기본 형태는 리스트[시작:끝]이다.
시작 인덱스에 있는 원소는 슬라이스에는 포함되지만, 끝 인덱스에 있는 원소는 포함되지 않는다.
a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
print('가운데 2개: ',a[3:5])
리스트의 맨 앞부터 슬라이싱 할 대는 시각적 잡음을 없애기 위해 0을 생략해야한다.
마찬가지로 리스트를 끝까지 슬라이싱할 때는 끝 인덱스를 적지않는다.
assert a[:5] == a[0:5]
asser a[5:] == a[5:len(a)]
리스트의 끝에서 부터 원소를 찾고 싶을 때에는 음수 인덱스를 사용하면 된다.
a[:] : ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
a[:5] : ['a', 'b', 'c', 'd', 'e']
a[:-1] : ['a', 'b', 'c', 'd', 'e', 'f', 'g']
a[4:] : ['e', 'f', 'g', 'h']
a[-3:] : ['f', 'g', 'h']
a[2:5] : ['c', 'd', 'e']
a[2:-1] : ['c', 'd', 'e', 'f', 'g']
a[-3:-1] : ['f', 'g']
더보기
음수 인덱스를 할 시에
somelist[-n:]은 n이 0보다 큰 경우 잘 작동하지만
n이 0이면 somelist[:]과 같기 때문에 원래의 리스트를 복사한 리스트를 얻게된다.
슬라이싱은 범위를 넘어가는 시작 인덱스나 끝 인덱스도 허용한다.
이를 활용해서 시퀀스 시작이나 끝에서 길이를 제한하는 슬라이스를 쉽게 표현할 수 있다.
리스트 슬라이스에 대입하면 원래 시퀀스에서 슬라이스가 가리키는 부분을 대입 연산자 오른쪽에 있는 스퀀스로 대치한다. 이때 슬라이스와 대치되는 스퀀스의 길이가 달라도 된다.
본 블로그는 [파이썬 코딩의 기술] 서적을 참고하여 작성하였습니다.
반응형
'SW ENGINEERING > Python' 카테고리의 다른 글
파이썬 코딩의 기술TIP 13일차 (0) | 2021.08.11 |
---|---|
파이썬 코딩의 기술TIP 12일차 (0) | 2021.08.02 |
파이썬 코딩의 기술TIP 10일차 (0) | 2021.06.18 |
파이썬 코딩의 기술TIP 9일차 (0) | 2021.06.14 |
파이썬 코딩의 기술TIP 8일차 (0) | 2021.06.13 |
최근댓글