스토리지

'str' object does not support item assignment 본문

Python

'str' object does not support item assignment

ljw4104 2021. 10. 5. 13:40

다른 언어에서 문자열의 특정 인덱스에 다른 값을 넣을려고 한다면?

string s = "abcdef";
s[0] = z;

위 처럼 그냥 인덱스에 접근하면 된다.

 

하지만 Python 에서는 다음과 같은 방법이 적용되지 않는다.

tmp = "Hello"
tmp[0] = "a" # 'str' object does not support item assignment

이유

Pythom에서 한번 생성되고 그 후 변경하지 못하는 타입을 immutable 타입이라고 한다. 그와 반대되는 개념은 mutable이다.

Mutable Immutable
list
dict
set
bytearray
user-defined classes
int float decimal complex
bool string tuple
range frozenset
bytes

그러면 위에서 0번째 Index의 값만 바꿔주려고 하면 어떻게 해야될까?

문자열은 문자의 List형태이기 때문에 범위를 지정할 수 있다. 이 범위를 이용해야 한다.

tmp = "Hello"
print(tmp)
tmp = 'a' + tmp[1:] # a + tmp의 1번 인덱스부터 끝까지
print(tmp)

바꾸려는 데이터와  원래 있던 데이터를 쪼개서 따로 처리를 해주어야 한다... 매우 귀찮다 정말

'Python' 카테고리의 다른 글

[08.25] DFS (Depth-First-Search)  (0) 2021.08.25
[08.17] Python에서 데이터 입출력하기  (0) 2021.08.17
[08.17] Function  (0) 2021.08.17
[08.17] List Comprehension  (0) 2021.08.17
[07.15] 파이썬 3일차 - 리스트 2  (0) 2021.07.15
Comments