특정 위치의 문자열 치환
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
위 두 방법 모두, 새로운 문자열 객체를 생성하는 방식으로 문제를 해결합니다.
유사한 질문과 답변을 다룬 링크를 아래에 공유드립니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
4-7강 음성이 안나옵니다
0
9
1
python main.py 실행시 게임이 실행이 안돼요
0
10
2
자료 다운로드 오류
0
12
2
antigravity 대신 cursor를 활용해도 되나요?
0
15
1
뉴스 검색 분류 한도초과
0
16
2
완성자료
0
10
2
섹션5 노션링크 는 따로 없나요?
0
18
2
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
18
2
Part 4에서 강의 연관 노션 정보들이 워드파일에 없습니다.
0
22
2
첨부자료 Part 4 코드 확인 부탁드리겠습니다.
0
19
2
구글 코랩이 아닌 아나콘다를 이용해서 수강해도 문제가 없을까요?
1
65
1
구글 코랩에서는 셀마다 변수 값을 다시 정의해야 하나요?
1
126
2
퀴즈 질문) 시퀀스가 뭔가요?
1
127
2
문자열에 작은 따옴표를 주로 사용하시는 이유가 있을까요?
1
195
2
a[:]는 언제 필요한가요?
1
108
2
실수의 소수점 처리 방법이 궁금합니다.
1
182
1
다음 강의는 언제 런칭되나요?
1
100
2
강의가 안나오고 검은색 화면만 나와요
0
88
1
데이터 분석가가 되기 위한 다음 단계가 궁금합니다!
1
91
1
판다스 책 관련 질문입니다!
1
79
2
오프라인 강의 문의.
1
86
2
판다스 강의는 언제쯤으로 예정하고 계신가요?
1
158
2
판다스 강의 문의
1
127
1
수강하였습니다. pdf 교재는 어떻게 받을수 있나요?
0
179
1

