zoukankan      html  css  js  c++  java
  • python学习--字符串处理相关方法

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

    利用正则表达式

    import re

    s='ab,cd:egg//aaa/kkk'

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

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

    使用str的startswith和endswith方法 

    s='ab,cd:egg/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='abqc+dQdd'
      s.replace('q','')

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

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

     

  • 相关阅读:
    异常处理
    PAT——1048. 数字加密
    PAT——1047. 编程团体赛
    PAT——1046. 划拳
    PAT——1045. 快速排序(25)
    PAT——1044. 火星数字
    PAT——1043. 输出PATest
    PAT——1042. 字符统计
    PAT——1041. 考试座位号
    PAT——1040. 有几个PAT
  • 原文地址:https://www.cnblogs.com/daacheng/p/7954281.html
Copyright © 2011-2022 走看看