답변:
파이썬 에서는 문자열을 변경할 수 없기 때문 입니다.
이는 교체 된 사본 을 X.replace("hello","goodbye")
반환 한다는 의미입니다 . 이 때문에 다음 줄을 바꿔야합니다.X
X.replace("hello", "goodbye")
이 줄로 :
X = X.replace("hello", "goodbye")
더 넓게, 이 "자리에서"문자열의 내용을 변경하는 모든 파이썬 문자열 메쏘드 마찬가지입니다 , 예를 들어 replace
, strip
, translate
, lower
/ upper
, join
...
출력을 사용하고 버리지 않으 려면 출력을 무언가에 할당해야합니다 . 예 :
X = X.strip(' \t')
X2 = X.translate(...)
Y = X.lower()
Z = X.upper()
A = X.join(':')
B = X.capitalize()
C = X.casefold()
등등.
모든 문자열 함수로 lower
, upper
, strip
원본을 수정하지 않고 문자열을 반환한다. 생각하는 것처럼 문자열을 수정하려고 well it is an iterable
하면 실패합니다.
x = 'hello'
x[0] = 'i' #'str' object does not support item assignment
불변의 문자열의 중요성에 대한 좋은 글이 있습니다 : 왜 파이썬 문자열은 불변입니까? 그것들을 사용하는 모범 사례
x += 'a'
특별한 경우, 예를 들어 stackoverflow.com/a/40996908/6260170