특정 위치의 문자열 치환
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
위 두 방법 모두, 새로운 문자열 객체를 생성하는 방식으로 문제를 해결합니다.
유사한 질문과 답변을 다룬 링크를 아래에 공유드립니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
질문 드립니다.
0
28
2
노션 링크
0
25
3
26년 1회 실기 해설 강의
0
31
2
노션 권한요청하였습니다 언제쯤 볼수있나요
0
28
2
AAFM CWM_LEVEL_2 Exam Questions 2026: Right Preparation Method
0
20
1
강의 내용 관련 질문드립니다~
0
28
2
퍼플렉시티 최소 결제단위 50달러로 바뀐 것 같습니다.
0
29
2
수강 연장 문의
0
23
1
강의자료 일괄 다운로드
0
30
2
5번 강의 1분까지 완료 후 오류가 뜹니다
0
22
2
구글 코랩이 아닌 아나콘다를 이용해서 수강해도 문제가 없을까요?
1
63
1
구글 코랩에서는 셀마다 변수 값을 다시 정의해야 하나요?
1
123
2
퀴즈 질문) 시퀀스가 뭔가요?
1
125
2
문자열에 작은 따옴표를 주로 사용하시는 이유가 있을까요?
1
195
2
a[:]는 언제 필요한가요?
1
107
2
실수의 소수점 처리 방법이 궁금합니다.
1
180
1
다음 강의는 언제 런칭되나요?
1
99
2
강의가 안나오고 검은색 화면만 나와요
0
87
1
데이터 분석가가 되기 위한 다음 단계가 궁금합니다!
1
90
1
판다스 책 관련 질문입니다!
1
78
2
오프라인 강의 문의.
1
85
2
판다스 강의는 언제쯤으로 예정하고 계신가요?
1
157
2
판다스 강의 문의
1
125
1
수강하였습니다. pdf 교재는 어떻게 받을수 있나요?
0
178
1





