联系方式

咨询热线:400-998-6158

点击此处免费预约试听课程»

常见问题
学习资讯
学习资讯

python如何修改字符串

 python中字符串属于不可修改对象,例如如下:
s='hELLO'
s[0].upper()
print(s)
print(s[0])
print(s[0].upper())
输出:
hELLO
h
H
在平时我们很多情况下需要修改字符串,可以以以下方式进行修改字符串
1、使用replace()方法
s=s.replace(s[0],s[0].upper())
print(s)
输出:
HELLO
2、先转换为list,再join组成新字符
l=list(s)
l[2]='l'
print(s,''.join(l),sep=' ')
输出:
HELLO
HElLO
3、使用序列切片方式:
s2=s[:2]+'r'+s[3:]
print(s,s2,sep=' ')
输出:
HELLO
HErLO
修改Python字符串的方法
方法一:将字符串转换为列表,修改列表的元素后,在重新连接为字符串:
方法二:使用str.replace方法替换成我们想要的字符串
非常感谢老铁的留言,指出了这种方法是存在缺陷的,replace函数用法:str.replace(old, new, max),是把字符串str中的所有old字符子串替换为new,max指定从左往右的最大替换次数,max可省略。
因此这种方法不适合单个字符或字符子串的修改,有可能会把所有相同字符子串都修改掉。
方法三:将字符串切片后相加:
可以看出, 以上的方法,都没有修改str1 的值,是通过不同的方法得到我们想要的字符串,不过我们再把str2赋给str1,就可达到修改字符串的目的。
另外,相比之下方法一相对灵活,可以对转换后的列表进行索引和修改,在字符串多处需要修改时尤为适用,但消耗的资源会稍多一些,尤其是在字符串较大的时候;方法二适合替换掉字符串中的所有指定字符子串;方法三则适合小范围的连续修改。
python字符串怎样修改
方法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' #新字符串
修改Python字符串的方法
方法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'
Python中如何修改字符串的值
Python中列表list中的值是可修改的,而元组和字符串的值是不可修改的。看下面的示例:
string = 'abcdafg'
string[4] = 'e'
print(string)
输出结果:
string[4] = 'e'
TypeError: 'str' object does not support item assignment
但在实际应用中,经常需要对字符串的值进行一些修改操作,解决方案有3种:
(1)使用字符串的replace函数
string = 'abcdafg'
newstr = string.replace('a', 'e')
print(string, newstr, sep=' ')
输出结果:
abcdafg
ebcdefg
可以看出,replace会生成一个新的字符串,原字符串仍然不变。replace会修改字符串中所有相关的子串。很多时候并不能满足我们的应用要求。
(2)将字符串转换成列表后修改值,然后用join组成新字符串
string = 'abcdafg'
newstr = list(string)
newstr[4] = 'e'
print(string, ''.join(newstr), sep=' ')
输出结果:
abcdafg
abcdefg
(3)使用序列切片方式
字符串本身也是一种序列,可以使用序列切片的方式。
http://saltriver.blog.163.com/blog/static/2260971542016525103755389/
string = 'abcdafg'
newstr = string[:4] + 'e' + string[5:]
print(string, newstr, sep=' ')
输出结果:
abcdafg
abcdefg
学校联系方式

更多培训课程,学习资讯,课程优惠等学校信息,请进入 宁波国富如荷CDA数据分析 网站详细了解,免费咨询电话:400-998-6158

相关课程