본문 바로가기
Python/문법

Python 리스트에서 원하는 부분을 접근, 추출하기- 인덱싱과 슬라이싱

by ssury94 2025. 1. 17.

파이썬 리스트(list)에서 데이터를 가져오거나 원하는 부분을 추출하려면 슬라이싱(Slicing)✂️ 기능을 활용할 수 있습니다. 또한, 인덱싱🗂️을 통해 특정 요소에 직접 접근하거나 슬라이싱으로 다양한 구간을 추출할 수 있습니다.


🔍 슬라이싱(Slicing) 기법

슬라이싱은 리스트의 특정 구간을 간단히 잘라내어 새로운 리스트로 반환하는 방식입니다. 슬라이싱을 사용하면 원하는 구간을 선택적으로 추출할 수 있습니다.

🔹 슬라이싱의 기본 문법

list[start:end:step]
  • start: 슬라이싱을 시작할 인덱스(포함).
  • end: 슬라이싱을 끝낼 인덱스(포함하지 않음).
  • step: 요소를 건너뛰는 간격 (생략 시 기본값은 1).

🔹 슬라이싱 예제

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 1. 특정 구간 추출
print(numbers[2:5])  # [2, 3, 4]

# 2. 처음부터 특정 위치까지 추출
print(numbers[:4])  # [0, 1, 2, 3]

# 3. 특정 위치부터 끝까지 추출
print(numbers[5:])  # [5, 6, 7, 8, 9]

# 4. 간격 설정 (step 사용)
print(numbers[1:8:2])  # [1, 3, 5, 7]

# 5. 리스트를 역순으로 추출
print(numbers[::-1])  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

🔍 데이터 접근 (Access)

리스트에서 특정 데이터를 가져오는 가장 기본적인 방법은 **인덱싱(Indexing)**입니다.

🔹 인덱싱의 기본 문법

list[index]
  • index: 리스트의 위치를 나타내는 정수. 0부터 시작하며 음수 인덱스는 뒤에서부터 접근합니다.

🔹 인덱싱 예제

fruits = ["apple", "banana", "cherry", "date"]

# 1. 첫 번째 요소 접근
print(fruits[0])  # 'apple'

# 2. 마지막 요소 접근
print(fruits[-1])  # 'date'

# 3. 중첩된 리스트 요소 접근
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(nested_list[1][2])  # 6

🎯 슬라이싱과 데이터 접근의 조합

슬라이싱과 데이터 접근은 함께 사용할 때 강력한 도구가 됩니다.

🔹 예제: 슬라이싱으로 특정 데이터 가공하기

# 리스트에서 홀수만 추출
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
hodds = numbers[1::2]  # [1, 3, 5, 7, 9]
print(odds)

# 문자열 리스트에서 특정 부분 추출
words = ["Python", "is", "fun", "to", "learn"]
sublist = words[1:4]  # ['is', 'fun', 'to']
print(sublist)

# 2차원 리스트의 특정 열 추출
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
column = [row[1] for row in matrix]  # [2, 5, 8]
print(column)

🔄 요약

  1. 슬라이싱: 리스트에서 원하는 구간을 잘라내어 새로운 리스트로 반환합니다.
  2. 인덱싱: 리스트의 특정 요소에 직접 접근합니다.
  3. 슬라이싱과 인덱싱 조합: 데이터 가공 및 분석 시 유용하게 활용할 수 있습니다.

파이썬의 리스트 슬라이싱과 데이터 접근 기법을 마스터하면 복잡한 데이터 구조를 다루는 데 매우 효과적입니다!