logo头像
Snippet 博客主题

Python字符串处理

本文于859天之前发表,文中内容可能已经过时。

相关特性

  1. 属于Python基本数据类型和结构的一种。
  2. 本身是不可变的数据类型。
  3. 有很多内置的方法
  1. 字符串连接

    1. join方法

      1
      2
      3
      4
      a = ['a','b','c','d']
      content = ''
      content = ''.join(a)
      print content
    2. 用字符串的占位符替换

      1
      2
      3
      4
      str = ['a','b','c','d']
      content = ''
      content = '%s%s%s%s' % tuple(str)
      print content
  2. 字符串截取

    1. 从左到右索引默认0开始的,最大范围是字符串长度少1

      1
      2
      3
      str = 'Python'
      print str[0]
      # P
    2. 是从右到左索引默认-1开始的,最大范围是字符串开头

      1
      2
      3
      str = 'Python'
      print str[-1]
      # n
  3. 字符串替换

    1. replace

      1
      2
      3
      str = 'hello word'
      b = str.replace('word','python')
      print b
    2. 用正则来替换

      1
      2
      3
      4
      5
      import re
      str = 'hello world'
      info = re.compile('word')
      b = info.sub('python', a)
      print b
  4. 字符串比较

    1. cmp比较两个对象,并根据结果返回一个整数。cmp(x,y)如果X< Y,返回值是负数 如果X>Y 返回的值为正数。

      1
      2
      3
      4
      sStr1 = 'strch'
      sStr2 = 'strchr'
      print cmp(sStr1,sStr2)
      #-1
  5. 字符串查找

    1. find()方法

      1
      2
      3
      4
      5
      6
      7
      8
      info = 'abca'
      print info.find('a')##从下标0开始,查找在字符串里第一个出现的子串,返回结果:0

      info = 'abca'
      print info.find('a',1)##从下标1开始,查找在字符串里第一个出现的子串:返回结果3

      info = 'abca'
      print info.find('333')##返回-1,查找不到返回-1
    2. index()方法

      python 的index方法是在字符串里查找子串第一次出现的位置,类似字符串的find方法,不过比find方法更好的是,如果查找不到子串,会抛出异常,而不是返回-1。

      1
      2
      3
      info = 'abca'
      print info.index('a')
      print info.index('33')
  6. 字符串分隔

    1. split

      1
      2
      3
      info = 'name:haha,age:20$name:python,age:30$name:fef,age:55'
      content = info.split('$')
      print content
  7. 字符串反转

    1. 通过步进反转[::-1]

      1
      2
      3
      a = 'abcd'
      b = a[::-1]##[::-1]通过步进反转
      print b
  8. 字符串追加和拼接

    1. 元组拼接

      1
      2
      3
      m = 'python'
      astr = 'i love %s' % m
      print astr
    2. 字符串的format方法

      1
      2
      3
      m = 'python'
      astr = "i love {python}".format(python=m)
      print astr
    3. 字典格式化字符串

      1
      2
      3
      m = 'python'
      astr = "i love %(python)s " % {'python':m}
      print astr
  9. 字符串大小写

    1
    2
    3
    4
    5
    6
    7
    S = 'abc'
    S.upper()#S中的字母大写
    S.lower() #S中的字母小写
    S.capitalize() #首字母大写
    S.istitle() #S是否是首字母大写的
    S.isupper() #S中的字母是否便是大写
    S.islower() #S中的字母是否全是小写
  10. 字符串去掉空格

    1. 通过strip(),lstrip(),rstrip()方法去除字符串的空格

      1
      2
      3
      S.strip()#去掉字符串的左右空格
      S.lstrip()#去掉字符串的左边空格
      S.rstrip()#去掉字符串的右边空格
  11. 字符串其他方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    S.center(width, [fillchar]) #中间对齐
    S.count(substr, [start, [end]]) #计算substr在S中出现的次数
    S.expandtabs([tabsize]) #把S中的tab字符替换没空格,每个tab替换为tabsize个空格,默认是8个
    S.isalnum() #是否全是字母和数字,并至少有一个字符
    S.isalpha() #是否全是字母,并至少有一个字符
    S.isspace() #是否全是空白字符,并至少有一个字符
    S.join()#S中的join,把列表生成一个字符串对象
    S.ljust(width,[fillchar]) #输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。
    S.rjust(width,[fillchar]) #右对齐
    S.splitlines([keepends]) #把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。
    S.swapcase() #大小写互换

  12. 案例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    str = "Hello My friend"
    #字符串是一个整体。如果你想直接修改字符串的某一部分,是不可能的。但我们能够读出字符串的某一部分。
    #子字符串的提取
    str[:6]
    #字符串包含判断操作符:in,not in
    "He" in str
    "she" not in str

    #string模块,还提供了很多方法,如
    S.find(substring, [start [,end]]) #可指范围查找子串,返回索引值,否则返回-1
    S.rfind(substring,[start [,end]]) #反向查找
    S.index(substring,[start [,end]]) #同find,只是找不到产生ValueError异常
    S.rindex(substring,[start [,end]])#同上反向查找
    S.count(substring,[start [,end]]) #返回找到子串的个数

    S.lowercase()
    S.capitalize() #首字母大写
    S.lower() #转小写
    S.upper() #转大写
    S.swapcase() #大小写互换

    S.split(str, ' ') #将string转list,以空格切分
    S.join(list, ' ') #将list转string,以空格连接

    #处理字符串的内置函数
    len(str) #串长度
    cmp("my friend", str) #字符串比较。第一个大,返回1
    max('abcxyz') #寻找字符串中最大的字符
    min('abcxyz') #寻找字符串中最小的字符

    #string的转换

    float(str) #变成浮点数,float("1e-1") 结果为0.1
    int(str) #变成整型, int("12") 结果为12
    int(str,base) #变成base进制整型数,int("11",2) 结果为2
    long(str) #变成长整型,
    long(str,base) #变成base进制长整型,

    #字符串的格式化(注意其转义字符,大多如C语言的,略)
    str_format % (参数列表) #参数列表是以tuple的形式定义的,即不可运行中改变
    >>>print ""%s's height is %dcm" % ("My brother", 180)
    #结果显示为 My brother's height is 180cm

评论系统未开启,无法评论!