首页 > 后端开发 > Python教程 > 为什么像`.replace()`这样的Python字符串方法不修改原始字符串?

为什么像`.replace()`这样的Python字符串方法不修改原始字符串?

Mary-Kate Olsen
发布: 2024-12-26 06:49:09
原创
616 人浏览过

Why Don't Python's String Methods Like `.replace()` Modify the Original String?

为什么像 .replace() 这样的字符串方法不直接在 Python 中更改字符串

当尝试使用 .replace() 等方法修改字符串时。在Python中使用replace()或.strip(),你可能会发现原始字符串保持不变。这种行为源于语言中字符串的不可变性。

不可变对象,顾名思义,不能就地修改。相反,对不可变对象调用方法会返回一个具有所需更改的新对象。例如,在 Python 中:

X = "hello world"
new_string = X.replace("hello", "goodbye")
登录后复制

在上面的代码中,.replace() 返回一个进行替换的新字符串。然而,原始变量 X 仍然保存未修改的字符串“hello world”。要更新 X 的值,必须分配方法调用的结果:

X = X.replace("hello", "goodbye")
登录后复制

这个原则适用于 Python 中所有改变字符串内容的字符串方法,包括:

  • .replace()
  • .strip()
  • .translate()
  • .lower()
  • .upper()
  • .join()
  • .capitalize()
  • .casefold()

因此,如果您希望保留修改后的字符串,则必须将这些方法的输出分配给新变量或同一变量。

以上是为什么像`.replace()`这样的Python字符串方法不修改原始字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板