【问题标题】:How do I modify a single character in a string, in Python?如何在 Python 中修改字符串中的单个字符?
【发布时间】:2010-10-05 05:23:15
【问题描述】:

如何在 Python 中修改字符串中的单个字符?比如:

 a = "hello"
 a[2] = "m"

'str' 对象不支持项目分配。

【问题讨论】:

标签: python string


【解决方案1】:

字符串在 Python 中是不可变的。您可以改用字符列表:

a = list("hello")

当你想显示结果时使用''.join(a):

a[2] = 'm'
print ''.join(a)

【讨论】:

    【解决方案2】:

    在python中,字符串是不可变的。如果要更改单个字符,则必须使用slicing

    a = "hello"
    a = a[:2] + "m" + a[3:]
    

    【讨论】:

    • 我想如果它是一个非常大的字符串,这将花费更多的内存,因为你必须将其他三个字符串连接在一起形成一个新字符串,对吧?
    • 哦,是的!如果您需要进行一大堆此类操作,最好使用字符列表。除非您碰巧已经有一个字符串并且只是碰巧想要更改一个字符。即便如此,创建和修改列表可能会更快。
    • @Shane:请参阅下面@detly 的回答,了解一个简单的示例。
    【解决方案3】:

    尝试从中构建一个列表。当你将一个可迭代对象传递给一个列表构造函数时,它会turn it into a list(这有点过于简单了,但通常是可行的)。

    a = list("hello")
    a[2] = m
    

    然后您可以使用''.join(a) 重新加入。

    【讨论】:

      【解决方案4】:

      这是因为python中的字符串是不可变的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-20
        • 2011-07-12
        • 1970-01-01
        • 1970-01-01
        • 2018-12-28
        • 2012-02-18
        • 2013-02-14
        • 2019-03-16
        相关资源
        最近更新 更多