본문 바로가기
4.파이썬 기본 자료형/문자열

[파이썬] 문자열(String) 수정

by 만다린망고 2020. 10. 22.
반응형

[파이썬 기초] 

문자열(String) 수정


보통 자료구조의 요소를 수정할 때는 인덱싱 후에 다른 값을 입력합니다. 하지만 문자열에서는 그런 방법이 통하지 않습니다. 


>>>  S='hi hello'

>>> S[0]='p'

Traceback (most recent call last):


  File "<ipython-input-498-77e7a27a58d8>", line 1, in <module>

    S[0]='p'


TypeError: 'str' object does not support item assignment


그 이유는 애초에 문자열이 그렇게 만들어졌기 때문입니다. 수정이 불가능한 자료구조로 말이죠. 수정이 불가능한 또다른 자료구조로는 '튜플'이 있습니다. 


이렇게 수정이 불가능한 자료구조를 immutable type 이라고 합니다. 그렇다면 수정이 완전히 불가능할까요? 인덱싱으로는 그렇지만 다른 방법으로는 가능합니다. 두가지 방법이 있습니다.




1) 리스트로 변환하여 수정


리스트로 변환하여 수정하고 다시 문자열로 변환하는 것입니다. 리스트로 변환할 때는 list 함수를 사용합니다. 


>>> S = 'hi hello'

>>> L = list(S)

>>> L

['h', 'i', ' ', 'h', 'e', 'l', 'l', 'o']


첫번째 원소를 p로 수정합시다.


>>> L[0] = 'p'  

>>> L

['p', 'i', ' ', 'h', 'e', 'l', 'l', 'o']


''.join 매소드를 사용하여 리스트를 문자열로 변환합니다. 


>>> S=''.join(L)

>>> S

'pi hello'




2) replace 메소드 사용


replace 함수는 어떤 문자를 다른 문자로 일괄변경합니다. 


>>> S = 'hi hello'

>>> S.replace('h','p')

'pi pello'


반응형

댓글