python学习--字符串处理相关方法

1、如何拆分有多种分隔符的字符串。

利用正则表达式

import re

s='ab,cd:e\gg//aaa/kkk'

re.split(r'[,:/\\]+',s)    #['ab', 'cd', 'e', 'gg', 'aaa', 'kkk']

2、如何判断字符串a是否已以字符串b为开头或者结尾。

使用str的startswith和endswith方法 

s='ab,cd:e\gg/aa/kkk'
#s.endswith('ab')   False
#s.startswith('ab')  True
s.endswith(('kk','bb'))  #startswith和endswith方法可以接受一个元组tuple,满足元组中的任意一个元素就返回True。

3、利用正则表达式调整字符串中文本的格式。

import re
txt='2017-12-02,hahahah.2017-12-03,hahahha'
re.sub('(\d{4})-(\d{2})-(\d{2})',r'\1/\2/\3',txt)    #第一个参数指定要替换的格式,第二个参数指定替换后的格式,第三个对象指定需要进行操作的文本对象

'2017/12/02,hahahah.2017/12/03,hahahha'

4、字符串拼接问题。

方式一:  利用字符串的相加 s1+s2,如果字符串比较多的情况下,效率低,浪费内存,

p=['abc','def','ghj','zzz']
res=''
for x in p:
  res+=x   #这一步每次都会创建一个临时字符串,浪费内存
print(res)

 

方式二:利用str的join方法

p=['abc','def','ghj','zzz']
res=''.join(p)
print(res)

     包含数字的情况下:

  p=['abc','def','ghj','zzz',55,66]

  #res=''.join([str(x) for x in p])    #这里会先生成一个转换后的列表,如果列表中包含很多元素,这里也会造成内存浪费,可以用生成器来代替

   res=''.join((str(x) for x in p))
  print(res)

5、字符串的左、右、居中对齐方法。

方式一:利用str字符串的ljust,rjust,center方法。方法接受两个参数,第一个参数指定方法返回后的字符串的长度,第二个参数字符串补填的内容。

s='daacheng'
s.ljust(20,'*')  'daacheng************'

s.rjust(20,'!')  '!!!!!!!!!!!!daacheng'

s.center(20,'@')  '@@@@@@daacheng@@@@@@'

----------------------------------------------------------------

举例

d={
  'daacheng':900,
  'amd':1000,
  'asdfg':200,
  'aaaa':2
}
m=max(list(map(lambda x:len(x),d.keys())))
for x in d.keys():
  print(x.ljust(m),':',d[x])

daacheng : 900
amd      : 1000
asdfg    : 200
aaaa     : 2

 

方式二:利用format()方法

s='aa'
format(s,'<10')  #左对齐
format(s,'>10')  #右对齐
format(s,'^10')  #居中

6、去掉字符串中不需要的字符。

    去掉前后两端不需要的字符串strip。

  s='+a +a '
  s.strip()#去掉前后两端的空格  lstrip()去掉左边空格,rstrip()去掉右边空格

  s.strip('+')  #去掉左右两端指定字符串

 删除单个固定字符串,可以使用切片加拼接的方式。

  s='abc+ddd'
   s[:3]+s[4:]

 字符串的replace()方法或者正则表达式的re.sub()方法删除任意位置字符。

  s='ab\qc+dQdd'
  s.replace('\q','')

 str的maketrans('a','1')映射,

  str.maketrans('ab','12')
  s='aaabbb'
  s.translate(str.maketrans('ab','12'))  '111222'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-12-02 15:00  哒哒哒大大诚  阅读(199)  评论(0编辑  收藏  举报