TIL 26 | python, 문자열 응용하기

ryan·2020년 8월 8일
0

Python

목록 보기
14/18

문자열도 문자 여러 개가 연속적으로 이어져 있는 시퀀스 자료형이기때문에 리스트와 비슷한 점이 많다.

문자열 메서드 사용 방법과 문자열 포메팅

문자열 조작하기

문자열 바꾸기

  • replace('바꿀문자열', '새문자열')
    문자열 안의 문자열을 다른 문자열로 바꾼다.(문자열 자체는 변경하지 않으며 바뀐 결과를 반환한다)
>>> 'Hello, Jeju!'.replace('Jeju', 'Seoul')
'Hello, Seoul!'

바뀐 결과를 유지하고 싶으면 문자열이 저장된 변수에 replace를 사용한 뒤 다시 변수에 할당해주면 된다.

>>> c = 'Hello, Jeju!'
>>> c
'Hello, Jeju!'
>>> c = c.replace('Jeju', 'Seoul')
>>> c
'Hello, Seoul!'

문자 바꾸기

  • str.maketrans('바꿀문자', '새문자')
  • translate(테이블)

문자열 'python'에서 p를 1, o를 2, w를 3, e를 4, r를 5로 바꾼다.

>>> table = str.maketrans('power', '12345')
>>> 'python'.translate(table)
'1yth2n'

문자열 분리하기

  • split()은 공백을 기준으로 문자열을 분리하여 리스트를 만든다. input으로 문자열을 입력받은 뒤에 리스트로 만든 메서드가 이 split이다.
>>> 'python java php swift javascript'.split()
['python', 'java', 'php', 'swift', 'javascript']

split('기준문자열')과 같이 기준 문자열을 지정하면 기준 문자열로 문자열을 분리한다. 즉, 문자열에서 각 단어가, (콤마)와 공백으로 구분되어 있을 때 ', '으로 문자열을 분리하면 단어만 리스트로 만든다.

>>> 'python, java, php, swift, javascript'.split(', ')
['python', 'java', 'php', 'swift', 'javascript']

구분자 문자열과 문자열 리스트 연결하기

문자열을 분리해서 리스트로 만들 수 있듯이 다시 연결하는 방법도 있다.

  • join(리스트)는 구분자 문자열과 문자열 리스트의 요소를 연결하여 문자열로 만든다.
>>> ' '.join(['python', 'java', 'php', 'swift'])
'python java php swift
>>> '_'.join(['python', 'java', 'php', 'swift'])
'python_java_php_swift'

소문자를 대문자로 바꾸기

  • upper()
>>> 'python is awesome'.upper()
'PYTHON IS AWESOME'

대문자를 소문자로 바꾸기

  • lower()
>>> 'PYTHON IS ASWESOME'.lower()
'python is aswesome'

왼쪽 공백 삭제하기

  • lstrip()
>>> '    jeju   '.lstrip()
'jeju   '

오른쪽 공백 삭제하기

  • rstrip()
>>> '    jeju   '.rstrip()
'    jeju'

양쪽 공백 삭제하기

strip()

>>> '    jeju   '.strip()
'jeju'

왼쪽의 특정 문자 삭제하기

  • lstrip('삭제할문자들')
>>> '...    jeju,'.lstrip('.,')
'    jeju,'

오른쪽의 특정 문자 삭제하기

  • rstrip('삭제할 문자들')
>>> 
'...    jeju,'.rstrip('.,')
'...    jeju'

양쪽 특정 문자 삭제하기

  • strip('삭제할 문자들')
>>> '...    jeju,'.strip('.,')
'    jeju'

punctuation을 삭제하기]

>>> import string
>>> '...    jeju,'.strip(string.punctuation)
'    jeju'


>>> '...    jeju,'.strip(string.punctuation + ' ')
'jeju'


>>> '...    jeju,'.strip(string.punctuation).strip()
'jeju'

문자열을 왼쪽 정렬하기

  • ljust(길이)는 문자열을 지정된 길이로 만든 뒤 왼쪽으로 정렬하며 남는 공간을 공백으로 채운다.
>>> 'jeju'.ljust(10)
'jeju      '		# jeju 길이 4 차지, 공백 6칸, 총 길이 10

문자열을 오른쪽 정렬하기

  • rjust(길이)
>>> 'jeju'.rjust(10)
'      jeju'

문자열을 가운데 정렬하기

  • center(길이)
>>> 'jeju'.center(10)	
'   jeju   '	# 좌우 공백 3칸씩, jeju 길이 4 차지.

>>> 'jeju'.center(11)	# 길이 11, 홀수면
'    jeju   '		# 왼쪽에 공백이 1칸 더 들어간다.

메서드 체이닝

메서드 체이닝: 메서드를 계속 연결해서 호출한다.

>>> 'jeju'.ljust(10).upper()
'JEJU      '

문자열 왼쪽에 0 채우기

파이썬을 사용하다 보면 문자열 왼쪽에 0을 채워야 할 경우가 생긴다.

  • zfill(길이)는 지정된 길이에 맞춰서 문자열의 왼쪽에 0을 채운다. (zero fill을 의미한다). 단, 문자열의 길이보다 지정된 길이가 작다면 아무것도 채우지 안흔다. 보통 zfill은 숫자를 자릿수로 맞추고 앞자리는 0으로 채울 때 사용한다.
>>> '11'.zfill(4)
'0011'

>>> '2.5'.zfill(6)
'0002.5'

>>> 'jeju'.zfill(8)
'0000jeju'

문자열 위치 찾기

find('찾을문자열')은 문자열에서 특정 문자열을 찾아서 인덱스를 반환하고, 문자열이 없으면 -1을 반환한다. find는 왼쪽에서부터 문자열을 찾는데, 같은 무자열이 여러 개일 경우 처음 찾은 문자열의 인ㄷ게스를 반환한다.

>>> 'jeju jejuisland'.find('ju')
2

>>> 'jeju jejuisland'.find('ab')
-1

오른쪽에서부터 문자열 위치 찾기

rfind('찾을문자열')

>>> 'jeju jejuisland'.rfind('ju')
7

>>> 'jeju jejuisland'.rfind('ab')
-1

문자열 위치 찾기

index('찾을문자열')은 왼쪽에서부터 특정 문자열을 인덱스를 반환한다. 단,
문자열이 없으면 에러를 발생시킨다.

>>> 'jeju jejuisland'.index('ju')
2

오른쪽에서부터 문자열 위치 찾기

rindex('찾을문자열')

>>> 'jeju jejuisland'.rindex('ju')
7

문자열 개수 세기

count('문자열')

>>> 'jeju jejuisland'.count('ju')
2
profile
👨🏻‍💻☕️ 🎹🎵 🐰🎶 🛫📷

0개의 댓글