为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

江户川乱折腾 2019-06-01 14:37:58
为什么调用PythonString方法不做任何事情,除非您分配它的输出?我试着做一个简单的字符串替换,但我不知道为什么它似乎不工作:X = "hello world"X.replace("hello", "goodbye")我想换个词hello到goodbye,因此应该更改字符串。"hello world"到"goodbye world"..但X仍然存在"hello world"..为什么我的代码不起作用?
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

这是因为字符串在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()

诸若此类。


查看完整回答
反对 回复 2019-06-01
?
温温酱

TA贡献1752条经验 获得超4个赞

所有字符串功能为lowerupperstrip返回字符串而不修改原始字符串。如果您试图修改字符串,正如您可能认为的那样well it is an iterable它会失败的。

x = 'hello'x[0] = 'i' #'str' object does not support item assignment

关于字符串不可变的重要性,有一个很好的解读:为什么Python字符串是不可变的?使用它们的最佳实践


查看完整回答
反对 回复 2019-06-01
  • 2 回答
  • 0 关注
  • 645 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信