python3 修改字符串 错误 'str' object does not support item assignment 解决方法

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

直接修改会报错:'str' object does not support item assignment

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

常见的修改方法有以下4种。

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

>>> s='abcdef'         #原字符串
>>> s1=list(s)         #将字符串转换为列表
>>> s1            
['a', 'b', 'c', 'd', 'e', 'f'] #列表的每一个元素为一个字符
>>> s1[4]='E'          #将列表中的第5个字符修改为E
>>> s1[5]='F'          #将列表中的第5个字符修改为E
>>> s1
['a', 'b', 'c', 'd', 'E', 'F']
>>> s=''.join(s1)        #用空串将列表中的所有字符重新连接为字符串
>>> s
'abcdEF'            #新字符串

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

>>> s='Hello World'
>>> s=s[:6] + 'Bital'     #s前6个字符串+'Bital'
>>> s
'Hello Bital'
>>> s=s[:3] + s[8:]      #s前3个字符串+s第8位之后的字符串
>>> s
'Heltal'

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

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

方法4: 通过给一个变量赋值(或者重新赋值)

>>> s='Hello World'
>>> s2=' 2017'       #变量赋值
>>> s=s+s2
>>> s
'Hello World 2017'
>>> s='Hello World'
>>> s='Hello World 2017'  #重新赋值
>>> s
'Hello World 2017'

来源:https://blog.csdn.net/whatday/article/details/104051481?utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.no_search_link

posted @ 2021-09-29 14:08  ArdenWang  阅读(4875)  评论(0编辑  收藏  举报