파이썬에서 문자열(string)은 인덱싱은 가능하나, 리스트와는 다르게 인덱스를 이용한 값 변경은 불가능하다.
따라서 지정된 함수를 이용해서 문자열을 변경해야 한다.
문자열 변경 - replace('old','new')
a = 'I love Java'
a=a.replace('Java','Python')
print(a)
>>I love Python
문자열 내 문자 변경 - str.maketrans('old','new'), translate(table)
문자 변경은 문자열 변경과 다르게 두 가지 과정이 필요하다.
먼저 str.maketrans()를 이용하여 바꿀 문자와 새로운 문자 간의 변환 테이블을 만들어야 한다.(1대 1 대응)
그 후 문자를 변경하고 싶은 문자열을 대상으로 translate 함수를 사용하면 된다.
말이 어려운데 예시를 보자.
a = 'my name is duck'
table = str.maketrans('abcdefghi','123456789') #1대1대응
a = a.translate(table)
print(a)
>>my n1m5 9s 4u3k
위의 예시의 table을 출력해보면
table = str.maketrans('abcdefghi','123456789')
print(table)
>>{97: 49, 98: 50, 99: 51, 100: 52, 101: 53, 102: 54, 103: 55, 104: 56, 105: 57}
위와 같이 a:1, b:2, c:3 ... 가 아스키코드로 변환되어 딕셔너리 형태로 저장되어 있는 것을 볼 수 있다.
이 테이블을 이용하여 translate함수를 사용하면
'my name is duck'이 'my n1m5 9s 4u3k'으로 변환되는 것을 볼 수 있다.
※str.maketrans()함수를 사용할 때는 꼭 두 인자의 길이가 같아야 한다!!!(위에서 말한 1대 1 대응)
'Python' 카테고리의 다른 글
Python - 단락 평가(Short-circuit Evaluation) (0) | 2020.07.26 |
---|---|
Python - 사용자 입력(input()) (0) | 2020.07.26 |
Python - 부동소수점(Floating Point), 유한 정밀도 (0) | 2020.07.24 |
python- 문자열 포매팅 (0) | 2020.07.23 |
Python- 문자열(string)을 리스트(list)로, 리스트(list)를 문자열(string)로 변환 (0) | 2020.07.23 |