【问题标题】:Are python strings can be mutable? [duplicate]python字符串可以是可变的吗? [复制]
【发布时间】:2021-10-17 04:25:17
【问题描述】:

由于字符串是不可变的,所以我们不能改变字符串,如何在中间位置插入一个字符?

代码:

s = "hello world"
s[5] = '-'

但它给你错误,因为它是不可变的。所以,我们如何解决这个问题?

【问题讨论】:

  • 一个快速的search 会给你答案 - 不,字符串是不可变的。

标签: python string immutability


【解决方案1】:

我们知道字符串是不可变的,但是我们不能通过赋值运算符来改变值。所以我们可以通过字符串切片来实现:

s = s[:5]+'-'+s[6:]

所以现在 s 变成了“hello-world”。 所以这可以使用字符串切片来完成。

【讨论】:

  • 但请注意 s 现在是一个新字符串。如果将s 作为参数传递给函数,则函数中s 的值现在是hello-world,但调用者仍会看到原始字符串hello world
  • @FrankYellin 那么你应该在函数中使用全局关键字
  • 这只有在调用者也将他们的参数命名为s并记得声明它global.时才有帮助
【解决方案2】:

是的,Python 中的字符串是不可变的。 但是我们可以对字符串进行拼接操作。

如果我们想修改字符串,比如..

S = "你好世界" S[5] = '-'

这是不可能的,但我们可以通过切片方法做到这一点

S = S[:5] + '-' + S[6:] 然后结果是 S = "你好世界"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 2019-03-19
    • 2013-05-08
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    相关资源
    最近更新 更多