python如何修改字符串

导读:在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符。因此改变一个字符串的元素需要新建一个新的字符串。那么 python 如何修改字符串 呢?一起来了解下吧: pytho

在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符。因此改变一个字符串的元素需要新建一个新的字符串。那么python如何修改字符串呢?一起来了解下吧:

python如何修改字符串

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' #新字符串

方法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

你也想0元试听小码王编程课程吗?
填写信息免费预约
免责申明:以上展示内容来源于合作媒体、企业机构、网友提供或网络收集整理,版权争议与本站无关,文章涉及见解与观点不代表小码王官方立场,请读者仅做参考。本文标题:python如何修改字符串,本文链接:https://www.xiaomawang.cn/information/68246.html;欢迎转载,转载请说明出处。若您认为本文侵犯了您的版权信息,或您发现该内容有任何涉及有违公德、触犯法律等违法信息,请您立即通过邮件(邮箱号:)联系我们及时修正或删除。
校区接待前厅
校区太空走廊
校区教室环境
校区多功能教室
小码王少儿编程体验课程免费预约