programing

.replace 또는 .strip과 같은 문자열 메서드를 호출하면 문자열을 수정(변형)하지 않는 이유는 무엇입니까?

css3 2023. 11. 6. 21:59

.replace 또는 .strip과 같은 문자열 메서드를 호출하면 문자열을 수정(변형)하지 않는 이유는 무엇입니까?

간단한 문자열 교체를 위해 이 코드를 시도했습니다.

X = "hello world"
X.replace("hello", "goodbye")

왜 안해요?X변경, 부터"hello world"로."goodbye world"?

이것은 Python에서 문자열은 불변하기 때문입니다.

그 말은.X.replace("hello","goodbye")의 복사본을 교체한 상태로 반환합니다.이 때문에 이 줄을 교체해야 합니다.

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

문자열의 불변성의 중요성에 대한 좋은 해석이 있습니다.파이썬 문자열은 왜 불변입니까? 모범 사례를 사용하는 모범 사례

언급URL : https://stackoverflow.com/questions/9189172/why-doesnt-calling-a-string-method-such-as-replace-or-strip-modify-mutate