본문 바로가기
Python

[Python] 13 - 기본기 - 문자열 슬라이싱

by 진홍이 2021. 7. 27.
728x90

파이썬을 시작하기에 앞서 기본기부터 알아보겠습니다.

문자열 슬라이싱(슬라이스)에 대해서 배워보겠습니다. 

 

파이썬의 슬로건 'Python for Everybody'를 사용해 문자열 슬라이싱을 해보겠습니다. 

 

슬라이싱은 이전시간에 알아봤던

[Python] 12 - 기본기 - 문자열

 

[Python] 12 - 기본기 - 문자열

파이썬을 시작하기에 앞서 기본기부터 알아보겠습니다. 1.문자열 문자열은 문자를 여러개 붙여놓은 것을 의미합니다. 문자,단어로 구성되어있는 '집합'입니다. 2.사용법 문자열은 사용법이 4가

dev-crimson.tistory.com

인덱싱을 사용해 문자열 안에서 원하는 만큼의 문자를 잘라서 가져오는것을 말합니다.

 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]
P y t h o n   f o r   E v e r y b o d y
[-20] [-19] [-18] [-17] [-16] [-15] [-14] [-13] [-12] [-11] [-10] [-9] [-8] [-7] [-6] [-5] [-4] [-3] [-2] [-1]

 

text = 'Python for Everybody'

위 text변수에 들어있는 문자열에서 'Python'이라는 단어를 가져오고 싶으면

 

슬라이싱을 사용합니다 사용법은 

text[시작인덱스:끝인덱스] 입니다.

text[0:6] #Python

이렇게 가져올 수 있습니다. 

 

엥? P=0,y=1,t=2,h=3,o=4,n=5인데 왜 0부터 6까지 가져오지?

슬라이싱 기법으로 마지막 인덱스는 포함하지 않습니다.

위 슬라이싱을 수식으로 나타낸다면

0 <= text < 6

이렇게 볼 수 있습니다. 

 

위문장에서 'for'를 가져오고싶으면

마찬가지로

text[7:10] #for

을 사용하면 가져올 수 있습니다.

 

하나더, 시작인덱스나 끝인덱스를 써주지 않으셔도 무방합니다.

대신 써주지 않은 인덱스는 처음, 혹은 끝까지 모두 가져옵니다.

 

예를 들어 Everybody를 가져오고 싶은 경우에는

text[11:] #Everybody

이렇게 11번째 인덱스 에서부터 끝까지 가져오도록 하면 'Everybody'를 가져올 수 있습니다.

 

마이너스기호(-)를 사용해 인덱싱과 마찬가지로 슬라이싱을 할 수 있습니다.

혹은 그냥 인덱싱과 섞어서 사용할 수 있습니다.

text[-9:20] #Everybody

마지막으로

text[시작인덱스:끝인덱스:띄어쓸값] 형식도 있습니다.

'Python'이라는 단어를 가져오고 싶은데 2칸씩 띄어서 가져오고 싶을땐

text[0:6:2] #Pto

이렇게 사용합니다 0인덱스 부터 6인덱스 까지 가져오는데 2칸씩 띄어서 가져온다 입니다.

Python이렇게 2칸씩 띄어서

P,t,o만 가져옵니다.

 

띄어쓸 값이 음수로 올경우에는 반대로 문자추출을 오른쪽에서 왼쪽으로 합니다.Python이라는 글자를반대로 가져오고싶을 경우에 사용할 수 있습니다.

print(text[5:0:-1]) #nohty

위와같은 방식으로 사용하면

nohty라는 결과를 불러옵니다

 

엥? nohtyP를 불러오고싶은데 'P'는 어디갔나요?

 

우리는 수식을 생각해볼 필요가 있습니다.

5 >= text > 0

반대로 하면 이런 수식이 되기때문에 0인덱스는 포함하지 않습니다.

해서 위에서 배운 생략하기를 사용하면 P까지 불러올 수 있습니다.

print(text[5::-1]) #nohtyP

테스트한 결과 첨부합니다.

이어서 문자열 관련 함수들을 알아보도록 하겠습니다.

728x90