본문 바로가기
파이썬

파이썬 슬라이싱 - 문자열, 리스트, 튜플

by python pro 2023. 1. 24.
반응형

 

Python 슬라이싱은 리스트, 문자열, 튜플 등의 자료형에서 일부만 추출하는 것을 말합니다.

 

일반적인 문법은 [start:end:step] 으로 구성되며, start는 추출 시작 인덱스, end는 추출 끝 인덱스, step은 스탭 사이즈를 말합니다.

예를들어, a = [1,2,3,4,5,6] 이라는 리스트가 있다면 a[1:3] 은 [2,3] 을 반환하며, a[1:5:2] 는 [2,4]를 반환합니다.

 a = [1,2,3,4,5,6] 
 a[1:3] # [2,3] 
 a[1:5:2] # [2,4]

 

슬라이싱을 통해 원본 데이터를 수정할 수도 있습니다. a[1:3] = [7,8] 을 하면 a = [1,7,8,4,5,6] 가 됩니다.

 a[1:3] = [7,8] 
 # a = [1,7,8,4,5,6]

 

문자열도 슬라이싱을 사용할 수 있습니다.

s = "Hello World" 라는 문자열이 있다면 s[0:5] 는 "Hello"를 반환하고, s[:5] 는 "Hello"를 반환합니다.

s = "Hello World" 
s[0:5] # "Hello"
s[:5] # "Hello"

 

슬라이싱에서 인덱스를 생략할 경우 처음부터, 끝까지를 의미합니다. a[:]는 전체를 의미합니다.

 

마지막으로, 슬라이싱을 통해 새로운 리스트를 생성할 수 있습니다.

예를들어, a = [1,2,3,4,5,6] 이라는 리스트가 있다면 b = a[1:3] 을 하면 b = [2,3] 이 됩니다.

이때, b는 a와는 별개의 리스트가 되며, a에서 b를 추출한 부분만 새로운 리스트로 저장됩니다.

a = [1,2,3,4,5,6]
b = a[1:3] # b = [2,3]

 

잘못된 예시로는, a = [1,2,3,4,5,6] 일 때 a[1:5:0] 을 하면 ValueError가 발생합니다. step은 0보다 크거나 같아야 하므로, 잘못된 슬라이싱입니다.

 

또한, a = [1,2,3,4,5,6] 일 때 a[1:10] 을 하면 IndexError가 발생합니다. 인덱스는 리스트의 크기보다 클 수 없으므로 잘못된 슬라이싱입니다.

 

슬라이싱을 하는 다양한 예제는 아래 코드를 참고하세요.

# 문자열 슬라이싱
string = "Python is a programming language"

# 문자열 전체 출력
print(string)

# 처음부터 5번째 인덱스까지 출력
print(string[:5])

# 5번째 인덱스부터 끝까지 출력
print(string[5:])

# 5번째부터 10번째 인덱스까지 출력
print(string[5:11])

# 처음부터 끝까지 2칸씩 건너뛰면서 출력
print(string[::2])

# 처음부터 끝까지 -1칸씩 건너뛰면서 출력 (문자열 뒤집기)
print(string[::-1])

# 리스트 슬라이싱
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 리스트 전체 출력
print(numbers)

# 처음부터 5번째 인덱스까지 출력
print(numbers[:5])

# 5번째 인덱스부터 끝까지 출력
print(numbers[5:])

# 5번째부터 10번째 인덱스까지 출력
print(numbers[5:10])

# 처음부터 끝까지 2칸씩 건너뛰면서 출력
print(numbers[::2])

# 처음부터 끝까지 -1칸씩 건너뛰면서 출력 (리스트 뒤집기)
print(numbers[::-1])
반응형

댓글