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])
'파이썬' 카테고리의 다른 글
파이썬 기초 - 내장함수 (0) | 2023.01.24 |
---|---|
파이썬 기초 - 연산자 우선순위 (0) | 2023.01.24 |
파이썬 자료형 - 문자열 이해하기 (0) | 2023.01.23 |
파이썬 자료형 - 세트 (Set) 이해하기 (0) | 2023.01.23 |
파이썬 자료형 - 딕셔너리 (dictionary) 이해하기 (0) | 2023.01.23 |
댓글