猿问

为什么调用PythonString方法不做任何事情,除非您分配它的输出?

为什么调用PythonString方法不做任何事情,除非您分配它的输出?

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

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

我想换个词hellogoodbye,因此应该更改字符串。"hello world""goodbye world"..但X仍然存在"hello world"..为什么我的代码不起作用?


江户川乱折腾
浏览 646回答 2
2回答

凤凰求蛊

这是因为字符串在Python中是不可变的。.这意味着X.replace("hello","goodbye")回报一份X换人..因此,您需要替换这一行:X.replace("hello", "goodbye")这一行:X = X.replace("hello", "goodbye")更广泛地说,对于所有改变字符串内容“就地”的Python字符串方法来说,这都是正确的。,G.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关于字符串不可变的重要性,有一个很好的解读:为什么Python字符串是不可变的?使用它们的最佳实践
随时随地看视频慕课网APP

相关分类

Python
我要回答