**슬라이싱(slicing)**은 sequence[start:stop:step] 문법을 사용하여 시퀀스(list, tuple, string)의 일부를 추출합니다. Python에서 끊임없이 사용되는 강력하고 간결한 기능입니다.
기본 슬라이싱
python
nums = [0, 1, 2, 3, 4, 5]
nums[:]
nums[:]
nums[:]
nums[:]
핵심 규칙: start는 포함되고, stop은 제외됩니다(nums[1:4]는 인덱스 1, 2, 3을 반환하며 4는 아닙니다).
nums[-1] # 5 — 마지막 요소
nums[-2] # 4 — 끝에서 두 번째
nums[-3:] # [3, 4, 5] — 마지막 세 요소
nums[:-1] # [0, 1, 2, 3, 4] — 마지막을 제외한 전부
nums[::2] # [0, 2, 4] — 2개마다 하나씩
nums[1::2] # [1, 3, 5] — 인덱스 1부터 시작해 2개마다
nums[::-1] # [5, 4, 3, 2, 1, 0] — 시퀀스 뒤집기 (유명한 관용구)
nums[::-1]로 시퀀스를 뒤집는 것은 가장 알아보기 쉬운 Python 관용구 중 하나입니다.
s = "Hello"
s[1:4] # "ell"
s[::-1] # "olleH" — 문자열 뒤집기
s[0] # "H"
nums = [0, 1, 2, 3, 4]
nums[1:3] = [10, 20, 30] # 슬라이스 교체 (길이 변경 가능)
# nums → [0, 10, 20, 30, 3, 4]
nums[10:20] # [] — 범위를 벗어난 슬라이스는 빈 결과를 반환하며 충돌하지 않음 (nums[10]과 다름)
단일 인덱스 접근(IndexError를 발생시킴)과 달리, 슬라이싱은 사용 가능한 것을 우아하게 반환합니다.
슬라이싱은 시퀀스를 깔끔하게 추출, 복사, 뒤집기 위한 어디서나 쓰이는 독특하게 Pythonic한 기능입니다.
start:stop:step 문법(특히 start 포함/stop 제외), 음수 인덱스(끝에서부터 셈), 뒤집기 관용구([::-1]), 그리고 슬라이스가 안전하다는 것(범위 초과 시 충돌하지 않음)을 이해하면 리스트와 문자열을 간결하고 정확하게 조작할 수 있습니다.
흔한 작업에서 장황한 루프를 대체하며 관용적인 Python 코드 전반에 등장합니다.