在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符。
因此改变一个字符串的元素需要新建一个新的字符串。
常见的修改方法有以下4种。
方法1:将字符串转换成列表后修改值,然后用join组成新字符串
|
1
2
3
4
5
6
7
8
9
10
11
|
>>> 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: 通过字符串序列切片方式
|
1
2
3
4
5
6
7
|
>>> 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函数
|
1
2
3
4
5
6
7
|
>>> s='abcdef'>>> s=s.replace('a','A') #用A替换a>>> s'Abcdef'>>> s=s.replace('bcd','123') #用123替换bcd >>> s'A123ef' |
方法4: 通过给一个变量赋值(或者重新赋值)
|
1
2
3
4
5
6
7
8
9
|
>>> s='Hello World'>>> s2=' 2017' #变量赋值>>> s=s+s2>>> s'Hello World 2017'>>> s='Hello World'>>> s='Hello World 2017' #重新赋值>>> s'Hello World 2017' |