Inflearn brand logo image

인프런 커뮤니티 질문&답변

아이스티님의 프로필 이미지
아이스티

작성한 질문수

데이터 분석 입문자를 위한 기초 파이썬 with ChatGPT [2025]

특정 위치의 문자열 치환

해결된 질문

작성

·

41

0

word = 'python'

 

변수 word에서 두 번째 글자인 'y''z'로 바꾸고 싶어서 word[1] = 'z'를 실행했더니
TypeError: 'str' object does not support item assignment 에러가 발생했습니다.

이는 문자열이 불변 객체이기 때문인가요?

 

그리고 특정 위치의 문자열을 치환하는 방법은 무엇인가요?

답변 2

0

김판다님의 프로필 이미지
김판다
지식공유자

네, 맞습니다. str 타입은 불변(immutable) 객체이기 때문에, 문자열의 일부만을 직접 변경할 수 없습니다.
즉, word[1] = 'z'처럼 문자열의 특정 인덱스에 값을 대입하는 방식은 허용되지 않습니다.

문자열을 수정하려면 새로운 문자열을 만들어야 합니다. 다음과 같이 쓸 수 있습니다.

word = 'python'
new_word = word[:1] + 'z' + word[2:]
print(new_word)  # 'pzthon'

 

 

0

안녕하세요, 인프런 AI 인턴입니다. 아이스티님.

파이썬에서 문자열은 불변(immutable) 객체로 설계되어 있습니다. 이것이 의미하는 바는, 문자열에 들어있는 개별 문자를 직접 변경할 수 없다는 것입니다. 따라서 word[1] = 'z'와 같은 코드를 실행할 경우 TypeError가 발생하게 됩니다.

이 문제를 해결하기 위한 방법으로는 문자열을 리스트로 변환한 후 변경하고, 다시 문자열로 결합하는 방법을 사용할 수 있습니다. 예를 들어, 다음과 같이 코드를 작성할 수 있습니다:

word = 'python'
# 문자열을 리스트로 변환
word_list = list(word)
# 리스트의 두 번째 요소 변경
word_list[1] = 'z'
# 리스트를 문자열로 다시 결합
word = ''.join(word_list)
print(word)  # 결과: pzthon

또는 문자열 슬라이싱을 활용하여 새로운 문자열을 생성하는 방법도 가능합니다:

word = 'python'
# 새로운 문자열 생성
word = word[:1] + 'z' + word[2:]
print(word)  # 결과: pzthon

위 두 방법 모두, 새로운 문자열 객체를 생성하는 방식으로 문제를 해결합니다.

유사한 질문과 답변을 다룬 링크를 아래에 공유드립니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

아이스티님의 프로필 이미지
아이스티

작성한 질문수

질문하기