더북(TheBook)

8.5 문자열은 불변이다

할당문의 왼쪽에 [] 연산자를 사용해서 문자열의 문자 하나를 바꾸고 싶지 않을까? 예를 들어

>>> greeting = 'Hello, world!'

>>> greeting[0] = 'J'

TypeError: 'str' object does not support item assignment

오류 메시지에서 object(객체)는 문자열이고, item(항목)은 할당하려고 한 문자다. 지금부터 객체는 값과 같은 것이라고 하자. 이 정의는 나중에 재정의를 할 것이다(174객체와 값 참조).

오류가 발생한 이유는 문자열이 불변(immutable), 즉 문자열을 변경할 수 없기 때문이다. 원래 값을 바꾸는 가장 좋은 방법은 새로운 문자열을 만드는 것이다.

>>> greeting = 'Hello, world!'

>>> new_greeting = 'J' + greeting[1:]

>>> new_greeting

'Jello, world!'

이 예제는 greeting의 슬라이스에 새로운 첫 번째 문자를 연결한다. 원본 문자열에는 어떤 영향도 주지 않는다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.