반응형
출력을 할당하지 않으면 왜 파이썬 문자열 메소드를 호출해도 아무것도하지 않습니까?
간단한 문자열 교체를 시도했지만 왜 작동하지 않는지 모르겠습니다.
X = "hello world"
X.replace("hello", "goodbye")
단어 hello
를 로 변경하고 싶으 goodbye
므로 문자열 "hello world"
을로 변경해야 합니다 "goodbye world"
. 그러나 X는 그대로 남아 있습니다 "hello world"
. 왜 내 코드가 작동하지 않습니까?
파이썬 에서는 문자열을 변경할 수 없기 때문 입니다.
이는 교체 된 사본 을 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
불변의 문자열의 중요성에 대한 좋은 글이 있습니다 : 왜 파이썬 문자열은 불변입니까? 그것들을 사용하는 모범 사례
반응형
'IT story' 카테고리의 다른 글
.git 디렉토리가없는 Git 클론 (0) | 2020.06.29 |
---|---|
작은 목록보다 작은 문자열을 반복하는 것이 왜 느린가요? (0) | 2020.06.29 |
curl을 사용하여 multipart / form-data를 POST하는 올바른 방법은 무엇입니까? (0) | 2020.06.29 |
파이썬에서 속성 기능을 사용하는 방법에 대한 실제 예? (0) | 2020.06.29 |
Jai 및 Jai-imageio는 어디서 다운로드 할 수 있습니까? (0) | 2020.06.28 |