특정 문자열 변경을 위한 str.replace()
replace()는 두 개의 매개 변수를 허용하며 첫 번째 매개변수는 바꾸고 싶은 값이며 두 번째 매개변수는 바뀌어질 값이다.
ex)
str='hello world!'
str.replace('hello','hi')
str => 'hi world!'
여러 문자 변경을 위한 re.sub(), re.subn()
python에서는 사용할 수 있는 정규 표현식에 대한 표현식 일치 작업이 많은 re 모듈을 가져올 수 있다.
re에 있는 두 가지 함수는 sub()과 subn() 함수이다.
re.sub()의 첫 번째 매개변수는 바꾸고 싶은 값이며 두 번째 매개변수는 바뀌어질 값, 세 번째 입력된 값은 작업할 문자열이다.
ex)
import re
txt= "홍길동, 010-1234-5678, 남성"
txt=re.sub([0-9],'x',txt)
txt => "홍길동, xxx-xxxx-xxxx, 남성"
re.subn()은 re.sub()와 본질적으로는 동일하지만 변환된 문자열의 교체횟수를 반환한다는 점에서 차이가 있다.
txt, n = re.subn('[0-9]', 'X', txt) 처럼 사용하여 n에 교체횟수가 들어가는 것이다.
문자열 내 문자를 변경하는 translate() 및 maketrans()
문자 변경은 문자열 변경과 다르게 두 가지 과정이 필요하다.
먼저 str.maketrans()를 이용하여 바꿀 문자와 새로운 문자 간의 변환 테이블을 만들어야 한다.
그 후 문자를 변경하고 싶은 문자열을 대상으로 translate 함수를 사용한다.
ex)
a = 'hello my name is abcde'
table=str.maketrans('abcde','12345') # 1대1 대응으로 변환된다.
# table=str.maketrans('a':'1','b':'2','c':'3','d':'4','e':'5') 이렇게 쓰는 것도 가능하다
a=a.translate(table)
a => 'h5llo my n1m5 is 12345'
사용하다보면 string keys in translate table must be of length1 이라는 에러가 발생할 수 있는데 이는 변경할 문자는 character 형태로 한글자만 가능하기 때문이다. 한글자 이상의 문자를 바꾸고 싶으면 replace를 사용해야한다.
'파이썬 > 파이썬의 기본' 카테고리의 다른 글
[파이썬] lambda 표현식의 사용 (0) | 2023.01.03 |
---|---|
[파이썬] dictionary의 활용 (0) | 2022.12.27 |
[파이썬] list, tuple, dict, set의 차이점 (0) | 2022.12.06 |
[파이썬] 리스트의 특징 (0) | 2022.11.28 |
[파이썬] 2차원 리스트 만들기 (0) | 2022.11.28 |
댓글