-
TIL. 15 again python_문자열 메서드TIL 2020. 10. 23. 23:06728x90
## 파이선에서 제공하는 문자열 메서드에 대해 알아보자 (자주사용하는 것 위주)
- repalce
## 문자열 안의 문자열을 다른 문자열로 바꾼다.
## .replace('바꾸고자 하는 문자열', '새문자열')
print('hellow, world!'.replace('world', 'python'))
:: 'hellow, python!'
a = 'python'
print(a.replace('python', 'PYTHON'))
:: PYTHON
print(a)
:: python
b = 'muntari'
b = b.replace('muntari', 'codermun')
print(b)
:: codermun
## 위 코드에서 보여지듯 repalce method 는 문자열 자체를 변경하지 않고
## 순간적으로 바뀐 결과를 보여주는 것 (a)
## 바뀐 결과를 유지하기 위해선 다시 변수에 할당해주면 된다 (b)
- translate
## 문자열 안의 문자를 다른 문자로 바꿈
## .tranlate()
c = str.maketrans('abcde', '12345')
print('apple'.translate(c))
:: 1ppl5
## 먼저 str.maketrans('바꿀문자', '새문자')로 변환 되는 변수 c 를 지정한다.
## 'a' => '1', 'b' => '2', ...'e' => '5' 로 변환되어 c에 반환 및 할당
## translate 을 해주면 'apple' -> 1ppl5 로 변환하여 출력해준다.
- split
## 특정 기준으로 문자열을 분리하여 리스트로 만들어 준다.
## .split('특정 기준')
print('apple,banana,orange,grape'.split(','))
:: ['apple', 'banana', 'orange', 'grape']
## 입력값으로 자주사용하던 input().split()에서의 split으로
## split() == 공백을 기준으로 분리 / split(',') == ,(콤마)를 기준으로 분리
- join
## 구분자 문자열과 문자열 리스트의 요소를 연결하여 문자열로 만듬 (split은 분리, join은 연결)
## ''.join(리스트)
d = ['apple', 'banana', 'orange', 'grape']
print(''.join(['apple', 'banana', 'orange', 'grape']))
:: applebananaorangegrape
print(' '.join(d))
:: apple banana orange grape
print('-'.join(d))
:: apple-banana-orange-grape
## ''.join(리스트) -> ''은 구분 문자열이 들어가는 자리로 특정 기준을 정해주면 된다.
## ''.join~ == 공백 없음 , ' '.join~ == 공백을 기준으로 문자열 연결 , '-'.join~ == -(하이픈)을 기준으로 연결
- upper
## 문자열의 문자를 모두 대문자로 바꿈
## .upper()
print('python'.upper())
:: PYTHON
print('PYTHon'.upper())
:: PYTHON
# 문자열에 대문자가 있다면 대문자 그대로 유지
- lower
## 문자열의 문자를 모두 소문자로 바꿈
## .lower()
print('python'.lower())
# python
print('PYTHon'.lower())
# python
# 문자열에 대문자가 있다면 대문자 그대로 유지
- strip
## 문자열의 공백 삭제하기
## .strip(), .lstrip(), .rstrip() // 양쪽 공백 제거, 왼쪽 공백 제거, 오른쪽 공백 제거 3가지가 있다.
e = ' python '
print(e.lstrip())
:: 'python '
print(e.rstrip())
::' python'
print(e.strip())
:: 'python'
f = ',., pyhton ,'
print(f.lstrip(',.'))
:: ' python, '
print(f.rstrip(',.'))
:: ',., python'
print(f.strip(',.'))
:: ' python'
## ,(콤마) .(점)을 선택하여 삭제 가능하다. 여기서는 공백이 아닌 , . 만 넣어줬으므로 공백이 삭제 되지 않는다.
- just
## 문자열을 지정된 길이로 만든 후, 정렬하는 메서드이며 남는 공간은 공백 으로 채운다.
## .ljust(길이), rjust(길이) // 문자열을 해당 길이 만큼 만든 후
왼쪽부터 채움 (왼쪽정렬)/ 오른쪽부터 채움(오른쪽정렬)
g = 'python'
print(g.ljust(10))
:: 'python '
print(g.rjust(10))
:: ' python'
- center
## 문자열을 지정된 길이로 만든 후, 가운데 정렬하며 남는 공간은 공백 으로 채운다.
## .center(길이)
print(g.center(10))
:: ' python '
print(g.center(11))
:: ' python '
## 가운데 정렬하여 남는 공간이 홀수 일 경우 왼쪽에 공백 한칸을 추가한다.
- method chaining (메서드 체이닝)
## 메서드를 줄줄이 연결한다는 의미로 메서드 체이닝이라 부른다.
## 문자열을 입력받을떄 사용하던 input().split() 도 메서드 체이닝이다.
print(g.ljust(10).upper())
:: 'PYTHON '
## python(g)를 10칸 생성하여 왼쪽 정렬한후, 대문자로 변환
- zfill
## 문자열을 지정된 길이에 맞춰서 왼쪽부터 0 을 채움 (공백이아닌 0을 채운다)
## .zfill(길이)
print('35'.zfill(4))
:: '0035'
print('3.5'.zfill(6))
:: '0003.5'
## 소수점의 .(점)도 공간을 차지함!
print('01234567'.zfill(3))
:: '01234567'
## 단 문자열의 길이보다 지정된 길이가 작은 경우 0을 채우지 않고 문자열을 모두 출력한다.
- find
## 문자열에서 특정 문자열을 찾아 인덱스를 반환 , 특정 문자열이 없는 경우 -1 을 반환함
## 찾고자하는 문자열이 여러번 등장할 경우 가장 첫 인덱스만을 반환함
## .find('특정문자열') .rfind('특정문자열')
## 왼쪽에서 부터 특정 문자열을 찾는것이 디폴트이며, rfind로 오른쪽에서부터 특정 문자열을 찾을 수 있다.
i = 'apple pineapple'
print(i.find('pl'))
:: 2
print(i.find('xy'))
:: -1
print(i.rfind('pl'))
:: 12
print(i.rfind('xy'))
:: -1
- index
## 문자열에서 특정 문자열을 찾아 인덱스를 반환, 특정 문자열이 없을 경우 에러!!!(error)
## 찾고자하는 문자열이 여러번 등장할 경우 가장 첫 인덱스만을 반환함
## .index('특정문자열') .rindex('특정문자열')
## 디폴트값이 왼쪽
i = 'apple pineapple'
print(i.index('pl'))
:: 2
print(i.index('xy'))
:: error
print(i.rindex('pl'))
:: 12
print(i.rindex('xy'))
:: error
- count
## 문자열에서 특정 문자열이 몇 번 나오는지 확인하여 반복된 횟수(갯수)를 반환
## .count('특정 문자열')
print(i.count('pl'))
:: 2
728x90'TIL' 카테고리의 다른 글
TIL. 17 python 과제 (목차확인) (0) 2020.10.25 TIL. 16 문자열 서식 지정자 및 포매팅 사용하기 (0) 2020.10.24 TIL.14 Javascript_카드 맞추기 게임 (0) 2020.10.22 TIL.13 Javascript_초급_3 (0) 2020.10.21 TIL.12 Javascript_초급_2 (0) 2020.10.20