데이터

제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -08

Leah (리아) 2025. 12. 5. 14:00
반응형

Chapter 01. 자료구조

리스트 슬라이싱 완전 정리

1. 주요 개념 요약

리스트 슬라이싱

  • 리스트[n:m] 형태로 특정 구간의 아이템만 추출하는 기능
  • n번째 인덱스는 포함, m은 포함되지 않음 → n ≤ index < m

예:
students[2:4] → ['이용규', '강호동']


문자열 슬라이싱

  • 리스트와 동일한 방식으로 문자열에서도 사용 가능
  • "Hello"[1:4] → 'ell'"

단계 슬라이싱(step)

  • 리스트[n:m:step] 형태
  • 일정 간격으로 요소를 추출할 수 있음

예:
numbers[0:10:2] → 짝수 인덱스만 추출


슬라이싱을 이용한 데이터 변경

  • 기존 슬라이스 구간에 새로운 리스트를 대입하면 해당 구간이 통째로 변경됨

예:
students[1:3] = ['새친구']


slice() 함수

  • 슬라이싱을 함수 형태로 표현
  • 유용한 패턴:
    • slice(start, stop)
    • slice(start, stop, step)

예:
students[slice(2, 4)] → ['이용규', '강호동']


2. 코드 예시 모음

① 기본 슬라이싱

 
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']

print(students[2:4])
# ['이용규', '강호동']

 


② 문자열 슬라이싱

text = "PYTHON"
print(text[1:5])
# YTHO

③ 단계(step) 사용

 
nums = [0,1,2,3,4,5,6,7,8,9]
print(nums[0:10:2])
# [0, 2, 4, 6, 8]

④ 슬라이싱으로 값 변경

 
students[1:3] = ['새학생1', '새학생2']
print(students)

⑤ slice() 함수로 슬라이싱

students = ['홍길동','박찬호','이용규','강호동','박승철','김지은']

print(students[slice(2,4)])
print(students[slice(4)])
print(students[slice(2, len(students))])
print(students[slice(len(students)-5, len(students)-2)])
 

출력

['이용규', '강호동']
['홍길동', '박찬호', '이용규', '강호동']
['이용규', '강호동', '박승철', '김지은']
['박찬호', '이용규', '강호동']

 

* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.


 

💡 생각 정리

리스트 슬라이싱은 데이터 분석과 알고리즘 구현에서 자주 사용하는 핵심 기능이라는 점을 다시 한 번 느꼈다. 인덱스를 기준으로 필요한 데이터만 골라낼 수 있다는 점이 굉장히 효율적이며, 문자열에도 동일하게 적용할 수 있다는 점이 편리하다. 또한 step을 활용하면 규칙적인 패턴을 쉽게 추출할 수 있고, 슬라이싱을 이용해 특정 영역의 데이터를 통째로 변경할 수도 있어 데이터 전처리 작업에서도 다양하게 활용할 수 있음을 이해하게 되었다. 마지막으로 slice() 함수를 사용하면 슬라이싱을 더 동적으로 다룰 수 있어서 함수형 코드나 재사용성 높은 코드를 작성할 때 유용하다는 점도 확실히 알게 되었다.


🚀 적용점

 

  • 데이터프레임이나 배열 전처리 시 구간별 데이터를 뽑아낼 때 적극 활용
  • 문자열 포맷팅, 일부 텍스트 추출 등 텍스트 처리 작업에서 사용
  • 알고리즘 문제에서 “특정 구간만 처리”하는 상황에 즉시 적용
  • step 기능을 이용해 규칙성 있는 데이터 패턴 분석에 활용
  • slice()를 사용해 슬라이싱 구간을 변수로 처리하며 유연성 확보

 

반응형