14. 문자열 응용하기
1. 키워드
- 문자열
- 메서드 체이닝(Method Chaining)
2. 문자열 응용하기
- 문자열도 문자 여러 개가 연속적으로 이어져 있는 시퀀스 자료형이다.
3. 문자열 조작하기
- 문자열은 문자열을 조작하거나 정보를 얻는 다양한 메서드를 제공한다.
1) 문자열 바꾸기
replace("바꿀문자열", "새문자열")
은 문자열 안의 문자열을 다른 문자열로 바꾼다.- 이때 문자열 자체는 변경하지 않으며 바뀐 결과를 반환한다.
- 만약 바뀐 결과를 유지하고 싶다면 문자열이 저장된 변수에
replace
를 사용한 뒤 다시 변수에 할당해 주면 된다.
2) 문자 바꾸기
translate
는 문자열 안의 문자를 다른 문자로 바꾼다.- 먼저
str.maketrans("바꿀문자, "새문자")
로 변환 테이블을 만든다. - 그다음에
translate(테이블)
을 사용하면 문자를 바꾼 뒤 결과를 반환한다.
3) 문자열 분리하기
split()
은 공백을 기준으로 문자열을 분리하여 리스트로 만든다.
split("기준문자열")
과 같이 기준 문자열을 지정하면 기준 문자열로 문자열을 분리한다.- 즉, 문자열에서 각 단어가
,
(콤마)와 공백으로 구분되어 있을 때", "
으로 문자열을 분리하면 단어만 리스트로 만든다.
>>> "apple, pear, grape, pineapple, orange".split(", ")
['apple', 'pear', 'grape', 'pineapple', 'orange']
4) 구분자 문자열과 문자열 리스트 연결하기
join(리스트)
는 구분자 문자열과 문자열 리스트의 요소를 연결하여 문자열로 만든다.
5) 소문자를 대문자로 바꾸기
upper()
는 문자열의 문자를 모두 대문자로 바꾼다.
6) 대문자를 소문자로 바꾸기
lower()
는 문자열의 문자를 모두 소문자로 바꾼다.
7) 왼쪽 공백 삭제하기
lstrip()
은 문자열에서 왼쪽에 있는 연속된 모든 공백을 삭제한다.
8) 오른쪽 공백 삭제하기
rstrip()
은 문자열에서 오른쪽에 있는 연속된 모든 공백을 삭제한다.
9) 양쪽 공백 삭제하기
strip()
은 문자열에서 양쪽에 있는 연속된 모든 공백을 삭제한다.
10) 왼쪽의 특정 문자 삭제하기
lstrip("삭제할문자들")
과 같이 삭제할 문자들을 문자열 형태로 넣어주면 문자열 왼쪽에 있는 해당 문자를 삭제한다.
11) 오른쪽의 특정 문자 삭제하기
rstrip("삭제할문자들")
과 같이 삭제할 문자들을 문자열 형태로 넣어주면 문자열 오른쪽에 있는 해당 문자를 삭제한다.
12) 양쪽의 특정 문자 삭제하기
strip("삭제할문자들")
과 같이 삭제할 문자들을 문자열 형태로 넣어주면 문자열 양쪽에 있는 해당 문자를 삭제한다.
구두점을 간단하게 삭제하기
string
모듈의punctuation
에는 모든 구두점이 들어있다.
- 다음과 같이
strip
메서드에string.punctuation
을 넣으면 문자열 양쪽의 모든 구두점을 간단하게 삭제할 수 있다.
>>> import string
>>> ", python.".strip(string.punctuation)
' python'
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
- 만약 공백까지 삭제하고 싶다면
string.punctuation
에 공백을 연결해서 넣어주면 된다.
- 물론 메서드 체이닝을 활용해도 된다.
13) 문자열을 왼쪽 정렬하기
ljust(길이)
는 문자열을 지정된 길이로 만든 뒤 왼쪽으로 정렬하며 남는 공간을 공백으로 채운다.
14) 문자열을 오른쪽 정렬하기
rjust(길이)
는 문자열을 지정된 길이로 만든 뒤 오른쪽으로 정렬하며 남는 공간을 공백으로 채운다.
15) 문자열을 가운데 정렬하기
center(길이)
는 문자열을 지정된 길이로 만든 뒤 가운데로 정렬하며 남는 공간을 공백으로 채운다.
- 만약 가운데로 정렬했을 때 전체 길이와 남는 공간이 모두 홀수가 된다면 왼쪽에 공백이 한 칸 더 들어간다.
16) 메서드 체이닝
- 문자열 메서드는 처리한 결과를 반환하도록 만들어져 있다.
- 따라서 메서드를 계속 연결해서 호출하는 메서드 체이닝이 가능하다.
17) 문자열 왼쪽에 0
채우기
zfill(길이)
는 지정된 길이에 맞춰서 문자열의 왼쪽에0
을 채운다.zfill
은 zero fill을 의미한다.- 단, 문자열의 길이보다 지정된 길이가 작다면 아무것도 채우지 않는다.
18) 문자열 위치 찾기
find("찾을문자열")
은 문자열에서 특정 문자열을 찾아서 인덱스를 반환하고, 문자열이 없으면-1
을 반환한다.find
는 왼쪽에서부터 문자열을 찾는데, 같은 문자열이 여러 개일 경우 처음 찾은 문자열의 인덱스를 반환한다.
19) 오른쪽에서부터 문자열 위치 찾기
rfind("찾을문자열")
은 오른쪽에서부터 특정 문자열을 찾아서 인덱스를 반환하고, 문자열이 없으면-1
을 반환한다.- 같은 문자열이 여러 개일 경우 처음 찾은 문자열의 인덱스를 반환한다.
20) 문자열 위치 찾기
find
,rfind
이외에도index
,rindex
로 문자열의 위치를 찾을 수 있다.index("찾을문자열")
은 왼쪽에서부터 특정 문자열을 찾아서 인덱스를 반환한다.- 단, 문자열이 없으면 에러를 발생시킨다.
index
도 같은 문자열이 여러 개일 경우 처음 찾은 문자열의 인덱스를 반환한다.
21) 오른쪽에서부터 문자열 위치 찾기
rindex("찾을문자열")
은 오른쪽에서부터 특정 문자열을 찾아서 인덱스를 반환한다.- 마찬가지로 문자열이 없으면 에러를 발생시키며 같은 문자열이 여러 개일 경우 처음 찾은 문자열의 인덱스를 반환한다.
22) 문자열 개수 세기
count("문자열")
은 현재 문자열에서 특정 문자열이 몇 번 나오는지 알아낸다.