DIVERSITY IS GOOD
DIVERSITY IS GOOD

테크/python basic

Python의 Slice 이해하기: 강력한 데이터 접근 방법

diversity is good 2025. 1. 14. 11:11
반응형

Python의 slice는 시퀀스 데이터 타입(리스트, 문자열, 튜플 등)에서 특정 범위의 데이터를 쉽게 추출하거나 수정할 수 있는 강력한 도구입니다.

특히 데이터 분석에서 특정 데이터를 처리할 때 정말 잘 사용이 됩니댜.

예를 들어 주소의 경우 "서울시"에서 "서울"만 얻어서 정규표현식에 넣고 싶은 경우에도 이 슬라이스를 사용하게 됩니다.

그래서 이 글에서는 slice의 기초적인 사용법부터 고급 활용법까지 자세히 알아보겠습니다.


1. Slice 기본 개념

slice는 시퀀스 자료형에서 특정 부분을 잘라내는 기능을 제공합니다. 기본 문법은 아래와 같습니다.

sequence[start:stop:step]

매개변수 설명

  • start: 슬라이스의 시작 인덱스 (포함)
  • stop: 슬라이스의 끝 인덱스 (포함하지 않음)
  • step: 슬라이스의 간격 (기본값은 1)

2. Slice 기초 사용법

리스트에서 슬라이스

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

# 인덱스 2부터 5(포함하지 않음)까지 슬라이스
sub_list = numbers[2:5]
print(sub_list)  # [2, 3, 4]

문자열에서 슬라이스

text = "Hello, World!"

# 인덱스 0부터 5(포함하지 않음)까지 슬라이스
greeting = text[0:5]
print(greeting)  # "Hello"

3. Slice의 확장된 사용법

1) step 사용하기

step을 활용하면 간격을 지정하여 슬라이스할 수 있습니다.

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

# 2칸씩 건너뛰며 슬라이스
stepped = numbers[::2]
print(stepped)  # [0, 2, 4, 6, 8]

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

2) start와 stop 생략하기

start와 stop은 생략 가능하며, 기본값은 시퀀스의 시작과 끝입니다.

# 리스트의 처음부터 5번째까지
print(numbers[:5])  # [0, 1, 2, 3, 4]

# 리스트의 5번째부터 끝까지
print(numbers[5:])  # [5, 6, 7, 8, 9]

4. Slice 객체 사용하기

slice 객체를 사용하면 가독성을 높이거나 동적으로 슬라이스 범위를 지정할 수 있습니다.

slice 객체 생성

s = slice(2, 5)
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# slice 객체를 활용한 슬라이스
sub_list = numbers[s]
print(sub_list)  # [2, 3, 4]

Slice 객체 속성

slice 객체는 start, stop, step 속성을 제공합니다.

s = slice(1, 10, 2)
print(s.start)  # 1
print(s.stop)   # 10
print(s.step)   # 2

5. 슬라이스를 활용한 고급 팁

1) 다차원 배열에서 슬라이스

다차원 배열에서는 인덱스별로 슬라이스를 사용할 수 있습니다.

import numpy as np

array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 첫 두 행과 두 열을 슬라이스
print(array[:2, :2])
# [[1 2]
#  [4 5]]

2) 슬라이스를 통한 데이터 수정

슬라이스는 데이터를 수정하는 데에도 유용합니다.

numbers = [0, 1, 2, 3, 4, 5]

# 인덱스 2부터 4까지를 다른 값으로 교체
numbers[2:5] = [20, 30, 40]
print(numbers)  # [0, 1, 20, 30, 40, 5]

3) 슬라이스로 삭제하기

슬라이스를 이용하여 특정 범위를 삭제할 수도 있습니다.

numbers = [0, 1, 2, 3, 4, 5]

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

6. 마무리

Python의 slice는 간단하면서도 강력한 도구로, 데이터를 처리하는 데 있어 효율성을 극대화할 수 있습니다. 기본적인 슬라이스 문법부터 고급 활용법까지 이해하면 데이터 조작에서 많은 시간을 절약할 수 있습니다.

지금 바로 코드로 연습해 보세요! 😃


위 글을 참고해 Python의 slice를 배우고 활용해 보세요. 추가 질문이나 의견이 있다면 댓글로 남겨주세요!

반응형