Python-为什么不调用Python字符串方法,除非指定它的输出?
我尝试做一个简单的字符串替换,但是我不知道为什么它似乎不起作用:
X = "hello world"
X.replace("hello", "goodbye")
我想将单词更改hello
为goodbye
,因此应将字符串更改"hello world"
为"goodbye world"
。但是X
仍然存在"hello world"
。为什么我的代码不起作用?
-
这是因为字符串在Python中是不可变的。
这意味着将
X.replace("hello","goodbye")
返回的副本,X其中包含已替换的副本。因此,你需要替换此行:X.replace("hello", "goodbye")
用这一行:
X = X.replace("hello", "goodbye")
更广泛地说,这是所有Python字符串的方法是“就地”修改字符串的内容真实,例如
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()
等等。