Python - 重写不可变的字符串,字符串的修改

我们在修改字符串时 通常遇到报错:

  TypeError: 'str' object does not support item assignment

在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符。

因此改变一个字符串的元素需要新建一个新的字符串。

常见的修改方法有以几种:

方法1:将字符串转换成列表后修改值,然后用join组成新字符串

# 原字符串
s = 'abcdef'
# 将字符串转换为列表
s1 = list(s)
print(s1)
# 将列表中的第5个字符修改为E
s1[4] = 'E'
# 将列表中的第5个字符修改为E
s1[5] = 'F'
print(s1)
# 用空串将列表中的所有字符重新连接为字符串
s = ''.join(s1)
print(s)

方法2: 通过字符串序列切片方式

spam = 'I have a pet cat'

spam = spam[:13] + 'C' + spam[14:]
print(spam)

方法3: 使用字符串的replace函数

s = 'abcdef'
# 用A替换a
s = s.replace('a', 'A')
print(s)
# 用123替换bcd
s = s.replace('bcd', '123')
print(s)