python | TypeError: 'str' object does not support item assignment

2023. 3. 19. 17:47·TIL/오류해결

TypeError: 'str' object does not support item assignment

string은 아이템 수정이 불가능하다는 뜻이다.

 

문자열은 인덱스로 접근도 가능하고 리스트와 같이 슬라이싱도 가능하다.

그럼 text의 1번 요소인 e를 a로 바꿔 'hallo'라는 결과를 얻을 수 있을까?

불가능하다. 

도대체 assignment의 뜻이 뭐길래 이런 에러가 발생하는 것일까. 궁금해서 직접 검색해 보았다.

에러 메시지에서 assignment는 2번 '배정, 배치'를 의미하는 것으로 보인다.

즉, TypeError: 'str' object does not support item assignment = 문자열에서는 아이템 배치를 지원하지 않는다.

 

문자열 수정을 위해 리스트처럼 인덱스로 접근은 할 수 있지만 수정은 불가능한 것이다. 

 

문자열에서 아이템을 바꾸고 싶다면 replace를 사용해야 한다. replace에서는 인덱스로 접근은 불가하고 직접 어떤 문자를 무엇으로 바꿀 것인지 지정해줘야 한다.

바뀔 문자(=old)와 바꿀 문자(=new)를 replace의 매개변수로 전달해 주면 된다.

'e'를 'a'로 바꾸고 싶으면 replace('e', 'a')와 같이 작성해 주면 된다.

 

replace의 또 다른 매개변수 count는 몇 번 바꿀지 변경 횟수를 정해주는 것이다.

'aaaaaaa'에서 'a'를 'o'로 바꾸려고 한다. 이때 word.replace('a', 'o')로 작성해주면 모든 'a'를 'o'로 바꾼다.

 

 

한 번만 바꾸고 싶으면 어떻게 해야 할까?

이렇게 바꾸고 싶은 횟수가 있을 경우에 count에 값을 지정해 주는 것이다. 1번만 바꾸기로 했으므로 1을 매개변수로 넘겨주면 맨 앞에 위치한 a만 o로 바뀐다.

3번 바꾸고 싶으면 3을 매개변수로 전달해 준다.

반응형
저작자표시 (새창열림)
'TIL/오류해결' 카테고리의 다른 글
  • ImportError: DLL load failed while importing _sqlite3: 지정된 모듈을 찾을 수 없습니다.
  • ImportError: cannot import name 'Imputer' from 'sklearn.preprocessing'
  • python | UnboundLocalError: local variable referenced before assignment
  • python | module 'math' has no attribute 'lcm'
dduniverse
dduniverse
  • dduniverse
    dduniverse
    dduniverse
  • 전체
    오늘
    어제
    • 분류 전체보기 (242)
      • Algorithm (123)
        • 알고리즘 이론 (8)
        • 백준 (19)
        • 프로그래머스 (83)
        • 구름 알고리즘 먼데이 챌린지 (13)
      • 빅데이터분석기사 (10)
        • 통계 (4)
        • 실기 (6)
      • KT에이블스쿨 (26)
      • FrontEnd (11)
        • React (5)
        • 기타 (6)
      • BackEnd (18)
        • Django (15)
        • Spring (3)
      • DS & ML (11)
        • Machine Learning (9)
        • Kaggle (2)
      • TIL (43)
        • python (22)
        • javascript (3)
        • 오류해결 (10)
        • 기타 (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 관리
    • 글쓰기
  • 링크

  • 인기 글

  • hELLO· Designed By정상우.v4.10.0
dduniverse
python | TypeError: 'str' object does not support item assignment
상단으로

티스토리툴바