파이썬을 시작하기에 앞서 기본기부터 알아보겠습니다.
문자열 슬라이싱(슬라이스)에 대해서 배워보겠습니다.
파이썬의 슬로건 'Python for Everybody'를 사용해 문자열 슬라이싱을 해보겠습니다.
슬라이싱은 이전시간에 알아봤던
[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
테스트한 결과 첨부합니다.
이어서 문자열 관련 함수들을 알아보도록 하겠습니다.
'Python' 카테고리의 다른 글
[Python] 15 - 기본기 - bool 자료형 (0) | 2021.08.15 |
---|---|
[Python] 14 - 기본기 - 문자열 메소드 (0) | 2021.08.07 |
[Python] 12 - 기본기 - 문자열 (0) | 2021.07.26 |
[Python] 11 - 기본기 - 수학 함수 (0) | 2021.07.22 |
[Python] 10 - 기본기 - 연산자 (0) | 2021.07.20 |