为什么调用Python字符串方法没有任何作用,除非您分配它的输出?

我尝试做一个简单的字符串替换,但我不知道为什么它似乎不起作用:

X=“hello world”
替换(“你好”、“再见”)

我想将单词hello改为再见,因此它应该将字符串“hello world”改为“再见世界”。但是X仍然是“你好,世界”。为什么我的代码不起作用

这是因为字符串在Python中是不可变的

这意味着X.replace(“hello”,“再见”)返回一份X的副本,并进行替换。因此,您需要更换该行:

X.replace(“你好”,“再见”)

这一行:

X=X.replace(“你好”,“再见”)

更广泛地说,这适用于所有“就地”更改字符串内容的Python字符串方法,例如,替换翻译/连接

如果你想使用它们,你必须将它们的输出分配给某些东西,而不是扔掉,例如

X=X.strip('\t')
X2=X.translate(…)
Y=X.下()
Z=X.上()
A=X.join(“:”)
B=X.大写()
C=X.casefold()

等等

发表评论