python 字符串中替换字符

今天本来打算写个程序,替换字符串中固定的一个字符:将<全部替换成回车'\n'

于是,我写成这样

s='sdjj<ddd<denj,>'

for x in s:

  if x=='<':

     x='\n'

print(s)

然后输出还是

'sdjj<ddd<denj,>'

然后我就很纳闷,于是乎我又写成了这样

s='sdjj<ddd<denj,>'
ss=list(s)
for x in ss:

  if x=='<':

     x='\n'

print(ss)

然后输出了

['s', 'd', 'j', 'j', '<', 'd', 'd', 'd', '<', 'd', 'e', 'n', 'j', ',', '>']

我总结了一下,应该是x是临时变量所以会这样,所以改成以下

s='sdjj<ddd<denj,>'
ss=list(s)
for x in range(len(ss)):

  if ss[x]=='<':

     ss[x]='\n'
s=''.join(ss)

print(s)

输出是:

  sdjj

ddd
denj,>

结果已经对了,但是写的很麻烦,后来找到了一个更简洁的方式:

s='sdjj<ddd<denj,>'
ss=s.replace('<','\n')

print(ss)

一句话搞定,输出也正确,又深刻的体会了一把,人生苦短,我用python,哈哈

 

注:这里有一点需要注意:s还是保持不变的,只有ss是我们想要的结果

输出s:sdjj<ddd<denj,>

输出ss:

sdjj
ddd
denj,>

 

注:还有string的其他函数,逻辑一样,生成的新字符串必须赋值到新的变量,老字符串保持不变,我今天又掉坑里了

 

 
 
posted @ 2018-11-27 12:26  mghhz816  阅读(1174)  评论(0编辑  收藏  举报