파이썬에서 'str' object does not support item deletion라는 에러가 났습니다.
조회수 8976회
안녕하세요 파이썬 공부중에
del을 이용하여 배열에서 특정 인덱스를 정해 삭제하는 작업을 하고 싶어 다음과 같이 코드를 짰는데
'str' object does not support item deletion 이러한 에러가 납니다..
이 문장을 적기 전에는 에러가 나지 않았었습니다.
뭐가 문제일까요? ㅠㅠ 아시는 고수님들은 답해주시면 감사하겠습니다 ㅠㅠ
1 답변
-
파이썬에서 문자열의 특정 인덱스의 원소에 대해
del
연산을 할 수 없습니다.비슷한 경우로
tuple
또한 특정 인덱스의 원소에 대해del
연산을 할 수 없습니다.del
은 원소를 제거함으로써 원소를 갖고 있는 대상을 변경하게 됩니다.list
는 원소를 넣고 빼기가 가능한 타입임에 반해str
과tuple
은 한번 생성된 후 원소를 넣고 빼기가 불가능한 타입입니다.이렇게 한번 생성되고 그후 변경하지 못하는 타입을 immutable 타입 이라고 부릅니다.
그렇다면
file_data
에서 특정 원소만 빼려면 어떻게 해야할까요?str
객체는 immutable 이기 때문에 결국 새로운 문자열 객체를 만들어file_data
변수에 대입해야합니다. 질문 주신건 [0 19) 범위를 지우시려는 것으로 보이니 아래와같이 19 인덱스 부터 끝까지를 잘라내어file_data
에 넣으면 되겠지요.file_data = file_data[19:]
댓글 입력