2026년 10월 13일 화요일

파이썬 리스트 음수 인덱스 슬라이싱 원리 및 원소 출력 결과 완벽 정리

주어진 리스트 fruits = ['체리', '사과', '수박', '딸기', '키위']에서 print(fruits[-4:-1])의 결과는 ['사과', '수박', '딸기'], print(fruits[:-3])은 ['체리', '사과'], print(fruits[-3:])은 ['수박', '딸기', '키위']입니다. 파이썬의 음수 인덱스는 리스트의 뒤에서부터 -1, -2, -3 순서로 번호를 매기며, 슬라이싱 구문 list[start:stop]에서 stop 인덱스 바로 전까지만 추출된다는 원리만 이해하면 누구나 쉽게 계산할 수 있습니다.

핵심 요약: 파이썬 리스트 슬라이싱에서 음수 인덱스는 맨 뒤 원소가 -1입니다. 슬라이싱 [a:b]는 인덱스 a부터 시작하여 b 직전(b-1)까지를 포함하므로, 시작 범위와 끝 범위의 포함 여부를 정확히 구분하는 것이 핵심입니다.

1. 파이썬 음수 인덱스 위치 매핑 및 3가지 슬라이싱 공식

파이썬 슬라이싱 규칙을 빠르게 이해할 수 있는 3가지 기초 개념입니다.

  • 음수 인덱스 번호 매기기: 맨 마지막 원소가 -1이며, 왼쪽으로 갈수록 -2, -3, -4, -5 순으로 커집니다. (예: '키위'=-1, '딸기'=-2, '수박'=-3, '사과'=-4, '체리'=-5)
  • 슬라이싱 종료 시점(Exclusive): [start:stop] 구조에서 stop 위치의 원소는 포함되지 않으며 그 바로 직전 원소까지만 잘라냅니다.
  • 시작/끝 생략 규칙: [:stop]처럼 시작을 생략하면 처음(0번/음수 맨 앞)부터 추출하고, [start:]처럼 끝을 생략하면 맨 마지막 원소까지 모두 포함합니다.

2. 질문하신 예제 3가지 슬라이싱 완벽 비교 분석

질문해주신 리스트 fruits = ['체리', '사과', '수박', '딸기', '키위'] 기준의 출력값 비교표입니다.

슬라이싱 구문 인덱스 범위 해석 최종 출력 결과
fruits[-4:-1] 인덱스 -4('사과')부터 -1('키위') 직전(-2 '딸기')까지 ['사과', '수박', '딸기']
fruits[:-3] 처음(0번 '체리')부터 -3('수박') 직전(-4 '사과')까지 ['체리', '사과']
fruits[-3:] 인덱스 -3('수박')부터 맨 끝('키위')까지 모두 포함 ['수박', '딸기', '키위']

파이썬 공식 문서의 시퀀스 타입 슬라이싱 가이드는 Python 공식 문서에서 확인하실 수 있습니다.

Python 공식 문서 리스트 및 슬라이싱 안내 바로가기

3. 음수 슬라이싱 손쉽게 푸는 실전 3단계 공식

헷갈리는 음수 인덱스 슬라이싱 문제를 혼자서 쉽게 계산하는 방법입니다.

  1. 리스트에 인덱스 써두기: 리스트 원소 아래에 양수 인덱스(0, 1, 2...)와 음수 인덱스(-5, -4, -3, -2, -1)를 각각 매핑합니다.
  2. start와 stop 위치 잡기: [start:stop]에서 start 항목을 먼저 선택하고, stop으로 지정된 항목 바로 '앞'까지만 범위를 지정합니다.
  3. 생략된 부분 확인: 콜론(:) 앞이나 뒤가 비어있다면 리스트의 맨 처음이나 맨 끝까지 연장하여 결과를 도출합니다.

결론적으로, 파이썬 음수 인덱스는 맨 오른쪽 원소를 -1로 두고 왼쪽으로 오면서 -2, -3으로 계산하며, 슬라이싱 시 끝 지점으로 지정한 인덱스의 직전까지만 포함된다는 법칙만 기억하시면 모든 문제를 쉽게 해결할 수 있습니다.

참고 문헌 및 출처

  • Python Software Foundation - Sequence Types (list, tuple, range) Slicing Guide
  • 파이썬 코딩 도장 - 리스트 슬라이싱 및 음수 인덱스 활용법

0개의 덧글:

댓글 쓰기

에 가입 댓글 [Atom]

<< 홈