파이썬에서 'str' object does not support item deletion라는 에러가 났습니다.

조회수 8976회

이미지

안녕하세요 파이썬 공부중에

del을 이용하여 배열에서 특정 인덱스를 정해 삭제하는 작업을 하고 싶어 다음과 같이 코드를 짰는데

'str' object does not support item deletion 이러한 에러가 납니다..

이 문장을 적기 전에는 에러가 나지 않았었습니다.

뭐가 문제일까요? ㅠㅠ 아시는 고수님들은 답해주시면 감사하겠습니다 ㅠㅠ

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    파이썬에서 문자열의 특정 인덱스의 원소에 대해 del 연산을 할 수 없습니다.

    비슷한 경우로 tuple 또한 특정 인덱스의 원소에 대해 del 연산을 할 수 없습니다.

    del 은 원소를 제거함으로써 원소를 갖고 있는 대상을 변경하게 됩니다. list 는 원소를 넣고 빼기가 가능한 타입임에 반해 strtuple 은 한번 생성된 후 원소를 넣고 빼기가 불가능한 타입입니다.

    이렇게 한번 생성되고 그후 변경하지 못하는 타입을 immutable 타입 이라고 부릅니다.

    그렇다면 file_data 에서 특정 원소만 빼려면 어떻게 해야할까요? str 객체는 immutable 이기 때문에 결국 새로운 문자열 객체를 만들어 file_data 변수에 대입해야합니다. 질문 주신건 [0 19) 범위를 지우시려는 것으로 보이니 아래와같이 19 인덱스 부터 끝까지를 잘라내어 file_data 에 넣으면 되겠지요.

    file_data = file_data[19:]
    
    • 와 pop ,remove등 여러 삭제 방법을 찾아도 도저히 답이 안나왔는데 조금만 바꿔 생각하니까 기발한 해결책이 나오네요 ㅠ 정말 감사합니다 :D jeongyun 2018.8.12 17:38

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)