인덱싱(Indexing)은 데이터 구조(리스트, 문자열, 튜플 등)에서 특정 요소에 접근하기 위해 사용하는 방법입니다.
인덱스를 사용하면 데이터 구조 내에서 원하는 위치에 있는 요소를 쉽게 참조하거나 수정할 수 있습니다.
특히 파이썬에서 인덱싱은 매우 유연하게 사용될 수 있으며, 정수 인덱스, 음수 인덱스 등을 지원합니다.
인덱싱의 기본 개념
# 리스트 생성
fruits = ["apple", "banana", "cherry", "date"]
# 정수 인덱스를 사용한 접근
print(fruits[0]) # 출력: apple
print(fruits[2]) # 출력: cherry
# 리스트 생성
fruits = ["apple", "banana", "cherry", "date"]
# 음수 인덱스를 사용한 접근
print(fruits[-1]) # 출력: date
print(fruits[-2]) # 출력: cherry
파이썬에서 인덱싱
파이썬에서는 인덱싱을 사용하여 리스트, 문자열, 튜플 등의 요소에 접근할 수 있습니다.
리스트 인덱싱
# 리스트 생성
fruits = ["apple", "banana", "cherry", "date"]
# 정수 인덱스를 사용한 접근
print(fruits[0]) # 출력: apple
print(fruits[2]) # 출력: cherry
# 음수 인덱스를 사용한 접근
print(fruits[-1]) # 출력: date
print(fruits[-2]) # 출력: cherry
# 인덱스를 사용하여 요소 수정
fruits[1] = "blueberry"
print(fruits) # 출력: ['apple', 'blueberry', 'cherry', 'date']
문자열 인덱싱
# 문자열 생성
greeting = "Hello, World!"
# 정수 인덱스를 사용한 접근
print(greeting[0]) # 출력: H
print(greeting[7]) # 출력: W
# 음수 인덱스를 사용한 접근
print(greeting[-1]) # 출력: !
print(greeting[-5]) # 출력: o
# 문자열은 불변이므로 요소 수정은 불가능합니다.
# greeting[0] = "h" # 오류 발생
튜플 인덱싱
# 튜플 생성
coordinates = (10, 20, 30)
# 정수 인덱스를 사용한 접근
print(coordinates[0]) # 출력: 10
print(coordinates[2]) # 출력: 30
# 음수 인덱스를 사용한 접근
print(coordinates[-1]) # 출력: 30
print(coordinates[-3]) # 출력: 10
# 튜플은 불변이므로 요소 수정은 불가능합니다.
# coordinates[0] = 15 # 오류 발생
인덱싱의 주의 사항
fruits = ["apple", "banana", "cherry"]
# print(fruits[3]) # IndexError: list index out of range
인덱싱을 활용한 슬라이싱
슬라이싱(Slicing)은 인덱싱을 확장하여 데이터 구조의 부분을 추출하는 방법입니다. 슬라이싱의 기본 형식은 [start:stop:step]입니다.
# 리스트 슬라이싱
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 인덱스 2부터 5까지 (5는 포함되지 않음)
print(numbers[2:5]) # 출력: [2, 3, 4]
# 처음부터 인덱스 4까지 (4는 포함되지 않음)
print(numbers[:4]) # 출력: [0, 1, 2, 3]
# 인덱스 6부터 끝까지
print(numbers[6:]) # 출력: [6, 7, 8, 9]
# 모든 요소를 2씩 건너뛰며 선택
print(numbers[::2]) # 출력: [0, 2, 4, 6, 8]
# 리스트를 거꾸로
print(numbers[::-1]) # 출력: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
요약해볼까요?