-
반응형
본 포스팅은 자주 사용되는 문자열 삽입하기 및 치환에 대해 다루어 봅니다.
● 문자열 삽입
Join() : 문자열 또는 리스트에 구분자를 삽입하여 하나의 문자열을 만들어 줍니다.
>>> ",".join("1234")
'1,2,3,4'
>>> x = ['사과', '배', '망고’]
## 리스트가 아니고 문자열로 결과값을 반환합니다.
>>> "-".join(x)
'사과-배-망고'
>>> x
['사과', '배', '망고']
>>>● 문자열 바꾸기(치환)
replace() : 문자열 내에 특정 문자는 문자열을 바꿀 문자로 변경합니다.
replace( ‘바꿀문자열’, 새문자열’ )
## ‘-’ 대시를 ‘_’ 언더바로 바꿉니다.
>>> "1-2-3-4-5".replace('-', '_' )
'1_2_3_4_5'
>>> "Hello world!".replace('Hello', 'Hi' )
'Hi world!’
## 대소문자를 구분합니다.
>>> "Hello world!".replace('hello', 'Hi')
'Hello world!’
## 특정 문자를 없애고자 할 때는 새문자열에 ‘’ 빈값을 넣어 줍니다.
>>> "1-2-3-4-5".replace('-', '')
'12345'
>>>● 문자 바꾸기
replace 는 문자 또는 문자열을 바꿀 수 있었습니다. 그런데 한 가지의 경우만 되었습니다.
문자를 문자로만 변경 가능하지만 한번에 매핑 테이블처럼 만들고 변경하는 방법이 있습니다.
maketrans(‘바꿀문자’, ‘새문자') 와 translate(테이블)을 사용합니다
다음 예제로 설명합니다.
>>> tbl = str.maketrans( 'abcde', '12345’ )
>>> "adeek fgh".translate( tbl )
'1455k fgh'
>>>위의 maketrans 는 아래와 같이 변경 매핑 테이블을 반환합니다. tbl에 아래와 같이 정의 되고 각 해당하는 문자에 따라 한자한자 변경됩니다.
여러 번 replace 를 사용하는 것 보다는 한번에 사용 가능하므로 편리함을 제공합니다.
● 문자열 나누기
문자열 나누기는 split() 로 지난 포스팅에 적었는데 partition을 빼 먹었네요.
Split(‘기준문자열‘) 는 기준 문자 또는 문자열로 문자열로 여러 개 있어도 다 나누어 리스트 형태로 결과 값을 반환합니다.
하지만 partition 은 딱 왼쪽, 기준문자열, 오른쪽 형태로 나누어서 튜플 자료형으로 결과 값을 반환합니다.
그럼 오른쪽 기준으로 사용하고 싶을 때는 rpartition 을 사용합니다.
>>> "aa=bb=cc==dd".partition('=')
('aa', '=', 'bb=cc==dd')
>>> "aa=bb=cc==dd".rpartition('=')
('aa=bb=cc=', '=', 'dd')
>>>● 문자열 앞뒤 공백 제거
strip() : 문자열 양 끝의 공백을 제거 합니다.
lstrip() : 문자열 왼쪽(앞쪽) 공백을 제거 합니다.
rstrip() : 문자열 왼쪽(앞쪽) 공백을 제거 합니다.
문자열의 양 끝의 공백을 제거 할 뿐 문장 중간의 공백은 제거 하지 않습니다.
>>> x = " Hello World! "
>>> x.strip()
'Hello World!'
>>> x.lstrip()
'Hello World! '
>>> x.rstrip()
' Hello World!'
>>>● 문자열 0 채우기
문자열을 왼쪽, 오른쪽, 중앙에 정렬하면서 주로 공백을 채웠습니다.
Format() 을 공부 할 때 0을 채운 예제를 사용하기는 했습니다.
Format으로도 할 수 있는데 더 직관적으로 주로 숫자 사용시 자릿수를 맞추기 위해 왼쪽에 0을 채우는데 이때 사용합니다.
>>> "12".zfill(10)
'0000000012'
>>> "12".zfill(5)
'00012'
>>> "12".zfill(1)
'12'
>>> "{0:0>10}".format("12")
'0000000012'
>>> "{0:0>5}".format("12")
'00012'● 메소드 체이닝
TIP 으로 메소드 체이닝 이라는 것을 사용하여 코딩 라인 수가 늘어나는 것을 간단하게 만들 수도 있습니다.
예를 통해 알아 봅니다. 메소드의 메소드를 같이 사용할 수 있습니다.
## 0을 채우고 대문자로 변경합니다.
>>> "abc".zfill(10).upper()
'0000000ABC’
## 소문자로 바꾸고 공백을 ‘==‘ 로 변경합니다.
>>> "Hello World".lower().replace(' ', '==')
'hello==world'
>>>이상으로 문자열에서 사용하는 메소드에 대해 포스팅해 보았습니다.
다음 포스팅에는 리스트, 튜플 등에서 자주 사용되는 조작 방법을 알아봅니다.
반응형'IT 이야기 공간 > 프로그램 언어' 카테고리의 다른 글
파이썬 리스트 요소 추가 및 합치기 (0) 2020.06.13 파이썬 리스트 요소 나누기 (슬라이싱) (0) 2020.06.12 파이썬 다양한 메소드(함수)로 문자열 판별 확인하기 (0) 2020.06.10 파이썬 다양한 메소드(함수)로 문자열 포맷팅 (0) 2020.06.09 파이썬 다양한 메소드(함수)로 문자열 찾기 (0) 2020.06.08