2021. 6. 21. 17:38ㆍPython
이번엔 문자열 자료형에서 가장 중요한
인덱싱과 슬라이싱에 대해 정리할 것이다.
잘 보면 규칙성이 있기 때문에 이해하기 어렵지 않다.
인덱싱(Indexing)
'가리킨다'는 의미 그대로다.
내가 물어본 자릿수에 위치한 문자를 알려주는 것인데
여기서 주의해야 할 것은 파이썬 역시 자릿수를 counting 할 때
맨 앞이 1이 아닌 0부터 counting 한다는 것이다.
>>> a = "Lifre is too short, You need Python"
여기서 a에 입력된 문자열의 각 문자마다 번호를 매겨 보면 다음과 같아진다.
L | i | f | e | i | s | t | o | o | s | h | o | r | t | , | Y | o | u | n | e | e | d | P | h | t | h | o | n | ||||||
0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 1 | 2 | 3 |
따라서 a의 3번째 문자가 궁금하면
>>> a[3]
이라고 입력하면 되고 그 값은
'e'가 나온다.
>>> a = "Lifre is too short, You need Python"
>>> a[3]
'e'
만약 [대괄호] 사이에 음수가 들어간다면??
그건 거꾸로 뒤에서부터 counting 하면 된다.
예를 들면 이런 식으로...
>>> a = "Life is too short, You need Python"
>>> a[0]
'L'
>>> a[-0]
'L'
>>> a[-3]
'h'
>>> a[-1]
'n'
슬라이싱(Slicing)
'잘라낸다'는 의미에 걸맞게
내가 어디서부터 어디까지 (어떻게) 잘라서
뽑아낼지 시키는 문법이다.
a를 위에서 계속 이어지는 문장이라고 하자.
입력 틀은 a[시작번호(이상):끝번호(미만):간격]이다.
하지만 무조건 colon (:,쌍점)을 2번씩 사용할 필요는 없다.
구구절절 설명하는 것보다 예시 몇 가지 보는 것이
더 빠르게 감이 잡히므로 바로 예시로~
>>> a = "Life is too short, You need Python"
>>> a[0:4]
'Life'
>>> a[5:7]
'is'
>>> a[12,17]
'short'
∵ a[0,4] : a에서 0번째 문자부터 4번째 미만 문자까지 뽑아내시오.
☞ a에서 0번째 문자부터 3번째 문자까지 뽑아내시오.
☞ 그래서 'Life'가 나오는 것이다.
>>> a[19:]
'You need Python'
>>> a[:17]
'Life is too short'
>>> a[:]
'Life is too short, You need Python'
a[시작번호:끝번호]에서
끝 번호 부분을 생략한다면 시작번호부터 그 문자열의 끝까지,
시작 번호 부분을 생략한다면 문자열의 처음부터 끝번호까지 뽑아낸다.
>>> a[19:-5]
'You need P'
물론 마이너스(-) 기호도 사용할 수 있다.

사실 이다음 순서는 포매팅이지만
포매팅끼리 묶기 위해서 문자열 관련 함수를
정리하며 마무리 지어볼까 한다. 개인적인 생각이지만
어딘지 모르게 엑셀 함수와 많이 닮았다는 느낌을 많이 받았다.
문자 개수 세기 count
>>> a = "banana"
>>> a.count('a')
3
위치 알려주기① find
>>> a = "Python is the best choice"
>>> a.find('e')
12
>>> a.find('k')
-1
문자열 중 처음으로 나온 위치를 반환한다.
만약 찾는 문자나 문자열이 존재 하지 않는다면 -1을 반환한다.
위치알려주기② index
>>> a = "Life is too short"
>>> a.index('i')
1
>>> a.index('k')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
find 함수와 동일하지만 찾는 문자가 문자열에
존재하지 않는 경우 -1이 아닌 Error가 뜬다.
문자열 삽입 join
>>> ",".join('1234')
'1,2,3,4'
>>> ",".join(['a','b','c','d'])
'a,b,c,d'
소문자 → 대문자 upper
>>> a = "hi"
>>> a.upper()
'HI'
소문자 ← 대문자 lower
>>> a = "HI"
>>> a.lower()
'hi'
양쪽 공백 지우기 strip
>>> a = " hi "
>>> a.strip()
'hi'
문자열 양쪽에 있는 한 칸 이상 연속된 공백을 모두 지운다.
왼쪽(오른쪽) 공백 지우기 lstrip(rstrip)
>>> a = " hi "
>>> a.lstrip()
'hi '
>>> a = " hi "
>>> a.rstrip()
' hi'
lstrip의 l은 left의 줄임말,
마찬가지로 rstrip의 r은 right의 줄임말.
문자열 바꾸기 replace
>>> a = "Life is too short"
>>> a.replace("Life","Your leg")
'Your leg is too short'
문자열 나누기 split
>>> a = "Life is too short"
>>> a.split() ← 공백을 기준으로 문자열 나눔
['Life', 'is', 'too', 'short']
>>> b = "a:b:c:d"
>>> b.split(':') ← : 기호를 기준으로 문자열 나눔
['a', 'b', 'c', 'd']
'Python' 카테고리의 다른 글
[Python 독학] 파이썬 자료형 - 리스트 자료형 (0) | 2021.06.22 |
---|---|
[Python 독학] 파이썬 자료형 - 문자열 자료형 ③ (0) | 2021.06.21 |
[Python 독학] 파이썬 자료형 - 숫자형, 문자열 자료형 ① (0) | 2021.06.21 |
[Python 독학] Intro (0) | 2021.06.21 |
[Python 독학] 파이썬 & 비주얼 스튜디오 설치하기 (0) | 2021.06.21 |