Python-为什么不调用Python字符串方法,除非指定它的输出?

发布于 2021-02-02 23:24:12

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

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

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

关注者
0
被浏览
158
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

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

    等等。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看