본문 바로가기

언어/Python

[ Python ] 리스트 slicing 으로 데이터 가져오기

반응형

파이썬의 리스트 슬라이싱(Slicing)은 리스트의 부분집합을 추출하는 강력한 방법입니다.
슬라이싱을 사용하면 리스트의 특정 범위에 있는 요소들을 쉽게 가져올 수 있습니다.
슬라이싱 구문은 다음과 같습니다:

list[start:stop:step]

여기서:

  • start는 슬라이싱이 시작되는 인덱스입니다. 생략하면 처음부터 시작합니다.
  • stop은 슬라이싱이 종료되는 인덱스(포함되지 않음)입니다. 생략하면 끝까지 포함됩니다.
  • step은 요소를 선택하는 간격입니다. 생략하면 기본값은 1입니다.

1. 슬라이싱 예제

1. 기본 슬라이싱

리스트의 일부분을 슬라이싱하여 추출할 수 있습니다.

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

# 인덱스 2부터 5까지 (5는 포함되지 않음)
print(numbers[2:5])  # [2, 3, 4]

# 인덱스 0부터 4까지
print(numbers[:5])  # [0, 1, 2, 3, 4]

# 인덱스 5부터 끝까지
print(numbers[5:])  # [5, 6, 7, 8, 9]

# 전체 리스트 복사
print(numbers[:])  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2. 음수 인덱스를 사용한 슬라이싱

음수 인덱스를 사용하여 리스트의 끝에서부터 슬라이싱할 수 있습니다.

# 인덱스 -5부터 끝까지
print(numbers[-5:])  # [5, 6, 7, 8, 9]

# 처음부터 인덱스 -3까지 (포함되지 않음)
print(numbers[:-3])  # [0, 1, 2, 3, 4, 5, 6]

3. 스텝을 사용한 슬라이싱

스텝을 지정하여 요소를 건너뛰며 슬라이싱할 수 있습니다.

# 인덱스 1부터 8까지 2씩 건너뛰기
print(numbers[1:8:2])  # [1, 3, 5, 7]

# 모든 요소를 2씩 건너뛰기
print(numbers[::2])  # [0, 2, 4, 6, 8]

# 역순으로 슬라이싱
print(numbers[::-1])  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

4. 슬라이싱을 사용한 리스트 수정

슬라이싱을 사용하여 리스트의 부분을 수정할 수도 있습니다.

numbers[2:5] = [20, 30, 40]
print(numbers)  # [0, 1, 20, 30, 40, 5, 6, 7, 8, 9]

# 인덱스 1부터 4까지 삭제
numbers[1:4] = []
print(numbers)  # [0, 40, 5, 6, 7, 8, 9]

2. 슬라이싱의 유용한 기능

  • 부분 리스트 추출: 리스트의 특정 부분을 쉽게 추출할 수 있습니다.
  • 리스트 복사: numbers[:]와 같이 슬라이싱을 사용하여 리스트의 복사본을 만들 수 있습니다.
  • 리스트 역순: numbers[::-1]을 사용하여 리스트를 역순으로 뒤집을 수 있습니다.
  • 리스트 수정: 슬라이싱을 사용하여 리스트의 특정 부분을 수정하거나 삭제할 수 있습니다.

3. 예제 코드

다음은 위의 모든 기능을 하나의 코드로 묶은 예제입니다.

# 리스트 생성
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 기본 슬라이싱
print(numbers[2:5])  # [2, 3, 4]
print(numbers[:5])   # [0, 1, 2, 3, 4]
print(numbers[5:])   # [5, 6, 7, 8, 9]
print(numbers[:])    # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 음수 인덱스를 사용한 슬라이싱
print(numbers[-5:])  # [5, 6, 7, 8, 9]
print(numbers[:-3])  # [0, 1, 2, 3, 4, 5, 6]

# 스텝을 사용한 슬라이싱
print(numbers[1:8:2])  # [1, 3, 5, 7]
print(numbers[::2])    # [0, 2, 4, 6, 8]
print(numbers[::-1])   # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

# 슬라이싱을 사용한 리스트 수정
numbers[2:5] = [20, 30, 40]
print(numbers)  # [0, 1, 20, 30, 40, 5, 6, 7, 8, 9]

numbers[1:4] = []
print(numbers)  # [0, 40, 5, 6, 7, 8, 9]

이 예제들을 통해 파이썬 리스트의 슬라이싱을 효과적으로 사용할 수 있습니다.
슬라이싱은 리스트를 다루는 데 매우 유용한 도구로, 다양한 데이터 조작 작업을 간단하게 수행할 수 있게 해줍니다.

반응형