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

18

在Python中,如何修改字符串中的单个字符?类似于:

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

'str'对象不支持项目赋值。


可能是在Python中更改字符串中的一个字符?的重复问题。 - Wolf
4个回答

16

在Python中,字符串是不可变的。你可以使用一个字符列表代替:

a = list("hello")

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

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

12

在Python中,字符串是不可变的。如果你想改变一个单个字符,你需要使用切片

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

1
如果这是一个非常大的字符串,那么它可能会占用更多的内存,因为您需要将三个其他字符串连接在一起形成一个新的字符串,对吗? - Shane
哦,是的!如果你需要做很多这种类型的操作,最好使用一个字符列表。除非你碰巧已经有一个字符串,并且只是想改变一个字符。即使是这样,创建和修改一个列表可能也更快。 - JoshD
@Shane:请看下面 @detly 的回答,里面有一个简单的例子。 - Manoj Govindan

8

试着用它来构建一个列表。当你将可迭代对象传入列表构造函数时,它会将其转换成列表(这有点简化,但通常有效)。

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

您可以使用''.join(a)将其重新连接起来。

3

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接