본문 바로가기
카테고리 없음

파이썬 리스트 인덱싱 슬라이싱 - 원하는 데이터만 쏙 꺼내기

by chapter21 2025. 5. 8.
파이썬 리스트 인덱싱 슬라이싱 - 원하는 데이터만 쏙 꺼내기
파이썬 리스트 인덱싱 슬라이싱 - 원하는 데이터만 쏙 꺼내기

파이썬 리스트 인덱싱 슬라이싱 - 원하는 데이터만 쏙 꺼내기

파이썬 리스트는 여러 개의 데이터를 순서대로 담아두는 상자와 같습니다. 이 상자 안에는 이름, 숫자, 좋아하는 과일 등 다양한 종류의 데이터가 들어갈 수 있습니다. 그런데 상자 안에 데이터가 많을 때, 특정 위치의 데이터만 꺼내거나 원하는 범위의 데이터만 골라내고 싶을 때가 있습니다.

이번 강의에서는 파이썬 리스트에서 필요한 데이터만 '쏙' 골라내는 두 가지 중요한 방법, 바로 인덱싱(Indexing)슬라이싱(Slicing)을 배워보겠습니다. 이 방법을 익히면 리스트를 훨씬 효율적으로 활용할 수 있습니다.

인덱싱(Indexing)이란? - 딱 하나만 집기

인덱싱은 리스트에서 하나의 특정 항목을 그 위치(순서 번호)를 이용하여 가져오는 방법입니다. 리스트의 각 항목은 0부터 시작하는 순서 번호, 즉 '인덱스'를 가지고 있습니다. 마치 운동장에서 줄을 설 때 "제일 앞에 있는 친구!" 또는 "세 번째 친구!"라고 부르는 것처럼요.

파이썬 리스트의 인덱스는 0부터 시작한다는 점을 꼭 기억하세요. 첫 번째 항목의 인덱스는 0이고, 두 번째 항목의 인덱스는 1입니다.

예시 1: 리스트의 특정 위치 항목 가져오기 (양수 인덱스)

리스트 이름 뒤에 대괄호([])를 사용하고 그 안에 원하는 항목의 인덱스 번호를 넣어주면 됩니다.

Python
# 과일 리스트를 만듭니다. fruits = ['사과', '바나나', '체리', '딸기'] # 첫 번째 과일을 가져옵니다. (인덱스 0) first_fruit = fruits[0] print("첫 번째 과일:", first_fruit) # 세 번째 과일을 가져옵니다. (인덱스 2) third_fruit = fruits[2] print("세 번째 과일:", third_fruit)

위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.

출력 결과
첫 번째 과일: 사과
세 번째 과일: 체리

예시 2: 리스트의 뒤에서부터 항목 가져오기 (음수 인덱스)

파이썬에서는 리스트의 뒤에서부터도 항목을 가져올 수 있습니다. 이때는 음수 인덱스를 사용합니다. 가장 마지막 항목은 -1, 그 앞은 -2 식으로 번호가 매겨집니다.

Python
# 위에서 만든 fruits 리스트를 계속 사용합니다. # 마지막 과일을 가져옵니다. (인덱스 -1) last_fruit = fruits[-1] print("마지막 과일:", last_fruit) # 뒤에서 두 번째 과일을 가져옵니다. (인덱스 -2) second_last_fruit = fruits[-2] print("뒤에서 두 번째 과일:", second_last_fruit)

위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.

출력 결과
마지막 과일: 딸기
뒤에서 두 번째 과일: 체리

슬라이싱(Slicing)이란? - 여러 개를 한 번에 자르기

슬라이싱은 리스트의 일부분, 즉 여러 개의 항목을 한 번에 잘라서 새로운 리스트로 만드는 방법입니다. 마치 케이크 한 판에서 원하는 크기만큼 잘라내는 것과 같아요.

슬라이싱은 [시작_인덱스 : 끝_인덱스] 형태로 사용합니다. 여기서 중요한 규칙은 시작_인덱스는 포함되지만, 끝_인덱스에 해당하는 항목은 포함되지 않는다는 것입니다.

중요:

[시작_인덱스 : 끝_인덱스]에서 끝_인덱스에 해당하는 항목은 결과에 포함되지 않습니다. 꼭 기억해두세요!

예시 3: 리스트의 특정 범위 항목 가져오기 (기본 슬라이싱)

숫자 리스트를 만들고 인덱스 2부터 인덱스 5 직전까지의 항목들을 가져와 보겠습니다.

Python
# 0부터 9까지 숫자가 담긴 리스트입니다. numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 인덱스 2부터 5 직전까지 (인덱스 2, 3, 4) 항목을 가져옵니다. sliced_list = numbers[2:5] print("인덱스 2부터 5 직전까지:", sliced_list)

위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.

출력 결과
인덱스 2부터 5 직전까지: [2, 3, 4]

결과에 5가 포함되지 않은 것을 확인하세요!

예시 4: 슬라이싱 시작/끝 생략 및 건너뛰기 (스텝)

슬라이싱을 할 때 시작 인덱스나 끝 인덱스를 생략하면 리스트의 처음 또는 끝까지를 의미합니다. 또한, [시작 : 끝 : 단계] 형태로 '단계(step)'를 지정하여 원하는 간격으로 항목을 가져올 수도 있습니다.

Python
# numbers 리스트를 계속 사용합니다. # 처음부터 인덱스 3 직전까지 가져옵니다. sliced_start = numbers[:3] print("처음부터 인덱스 3 직전까지:", sliced_start) # 인덱스 7부터 끝까지 가져옵니다. sliced_end = numbers[7:] print("인덱스 7부터 끝까지:", sliced_end) # 처음부터 끝까지 2단계씩 건너뛰면서 가져옵니다. sliced_step = numbers[::2] print("처음부터 끝까지 2단계씩:", sliced_step)

위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.

출력 결과
처음부터 인덱스 3 직전까지: [0, 1, 2]
인덱스 7부터 끝까지: [7, 8, 9]
처음부터 끝까지 2단계씩: [0, 2, 4, 6, 8]

주의:

존재하지 않는 인덱스로 항목을 가져오려고 하면 IndexError가 발생합니다. 예를 들어, 항목이 4개인 리스트에서 my_list[5]처럼요. 리스트의 크기를 확인하고 사용하세요.

핵심 : 인덱싱은 리스트[위치]를 사용하여 한 개의 항목을 가져오고, 슬라이싱은 리스트[시작:끝:단계]를 사용하여 여러 개의 항목(리스트의 일부분)을 가져옵니다. 이때 끝 인덱스 항목은 결과에 포함되지 않습니다.

마무리 요약

이번 시간에는 파이썬 리스트에서 원하는 데이터를 꺼내는 두 가지 방법, 인덱싱과 슬라이싱을 자세히 배워보았습니다. 인덱싱으로 특정 위치의 항목 하나를, 슬라이싱으로 특정 범위의 항목 여러 개를 효율적으로 가져올 수 있다는 것을 실습을 통해 확인했습니다. 이 두 가지 방법은 리스트를 다룰 때 가장 기본적이고 중요한 기술이니 꼭 익혀두시길 바랍니다. 다음 강의에서는 리스트의 항목을 추가하거나 수정하고 삭제하는 방법에 대해 알아보겠습니다.

실제 코딩이 잘 되었는지 터미널 출력 결과도 꼭 확인하세요.

질문이 있다면 댓글에 남겨주세요.