.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
'programing' 카테고리의 다른 글
MySQL 오류 1062: 키에 대한 중복 항목 (0) | 2023.11.06 |
---|---|
getString() 대신 JDBC getNString()을 사용해야 합니까? (0) | 2023.11.06 |
mysql 콘솔 내부의 mysql 덤프 (0) | 2023.11.06 |
파괴된 보기 사용 시도: 변경사항 탐지 (0) | 2023.11.06 |
쿼리 인덱스를 최적화하는 이상한 동작(MariaDB + InnoDB) (0) | 2023.11.06 |