zoukankan      html  css  js  c++  java
  • Python字符串的方法

    一、index、find和rfind方法查找字串所在位置

    • S.find(substr, [start, [end]]):返回S中出现substr的第一个字母的标号,如果S中没有substr则返回-1。start和end作用就相当于在S[start:end]中搜索

    • S.index(substr, [start, [end]]):与find()相同,只是在S中没有substr时,会返回一个运行时错误

    • S.rfind(substr, [start, [end]]):返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号

    find和rfind如果有结果将返回大于等于0的结果,无结果则返回-1;另外index方法也可以返回子字符串的位置,但是如果找不到会抛出异常

    >>> str
    'python String Function Strcat'
    >>> str.find("on")     #默认返回整个字符串中第一次出现"on"的下标。
    4
    >>> str.find("on",0,10)     #在[0:10]之间查找第一次出现"on"的子串。
    4
    >>> str.find("on",13,)     #在[13:]之间查找第一次出现"on"的子串
    20
    >>> str.rfind("on")      #默认返回整个字符串中最后出现"on"的下标。
    20
    >>> str.rfind("on",0,10)  #在[0:10]之间查找最后出现"on"的子串。
    4
    >>> str.rfind("on",13,)    #在[13:]之间查找最后出现"on"的子串的下标。
    20
    >>> str.index("on")
    4
    >>> str.index("on",0,10)
    4
    >>> str.index("on",13,)
    20
    >>> str.index("Q")   #index在找不到时会返回一个异常
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: substring not found
    >>> str.find("Q")
    -1
    >>> str.rfind("Q")
    -1
    

    二、从字符串中截取子字符串

    python 中没有substr或者substring的方法,但是可以通过数组slice的方法,方便的截取子字符串

    >>> str
    'python string functionstrcat'
    >>> str[0:3]     #截取第一位到第三位的字符
    'pyt'
    >>> str[:]        #截取字符串的全部字符
    'python string functionstrcat'
    >>> str[6:]     #截取第七个字符到结尾
    ' string functionstrcat'   
    >>> str[:-3]                #截取从头开始到倒数第三个字符之前
    'python string functionstr'
    >>> str[2]                  #截取第三个字符
    't'
    >>> str[-1]              #截取倒数第一个字符
    't'
    >>> str[::-1]              #创造一个与原字符串顺序相反的字符串
    'tacrtsnoitcnuf gnirts nohtyp'
    >>> str[-3:-1]                  #截取倒数第三位与倒数第一位之前的字符
    'ca'
    >>> str[-3:]                     #截取倒数第三位到结尾
    'cat'
    >>> str[:-5:-3]
    'tr'
    

    三、判断字符串是否包含某个字串

    >>> str
    'python string functionstrcat'
    >>> "python" in str
    True
    

    四、 获得字符串的长度

    在python中获得任何集合的长度都可以使用len方法

    >>> str
    'python string functionstrcat'
    >>> len(str)
    28
    >>> str.__len__()
    28
    

    五、python的字符串大小写转换

    >>> str ="python String Function Strcat"
    >>> str
    'python String Function Strcat'
    >>> str.upper()        #全部转换为大写
    'PYTHON STRING FUNCTION STRCAT'
    >>> str.lower()        #全部转换为小写
    'python string function strcat'
    >>> str.capitalize()   #首字符转为大写其余为小写
    'Python string function strcat'
    >>>
    >>> str = 'abc iop*ifew ndsfa.hfakshe=23ke//efha9023nksafn'
    >>> str.title()
    'Abc Iop*Ifew Ndsfa.Hfakshe=23Ke//Efha9023Nksafn'
    >>> 
    

    六、count查看子字符串出现的次数

    >>> str
    'python String Function Strcat'
    >>> str.count("python")
    1
    >>> str.count("n")
    4
    >>> str.count("n",0,10)  #在[0:10]之间统计“n”出现的次数
    1
    >>>
    

    七、字符串中的替换:

    • S.replace(oldstr, newstr, [count]):把S中的oldstr替换为newstr,count为替换次数,默认全部替换。这是替换的通用形式,还有一些函数进行特殊字符的替换

    • S.strip([chars]):把S中前后chars中有的字符全部去掉,可以理解为把S前后chars替换为None

    • S.lstrip([chars]):把S中前chars中有的字符全部去掉,可以理解为把S前后chars替换为None

    • S.rstrip([chars]):把S中后chars中有的字符全部去掉,可以理解为把S前后chars替换为None

    • S.expandtabs([tabsize]):把S中的tab字符替换为空格,每个tab替换为tabsize个空格,默认是8个

    举例:

    >>> str
    'python String Function Strcat'
    >>> str.replace("python","PYTHON")
    'PYTHON String Function Strcat'
    >>> str.replace("on","ON",1)
    'pythON String Function Strcat'
    >>> str.replace("on","ON",2)
    'pythON String FunctiON Strcat'
    >>> str="python string function python"
    >>> str.strip("python")
    ' string function '
    >>> str.lstrip("python")
    ' string function python'
    >>> str.rstrip("python")
    'python string function '
    >>> 
    >>> str = 'abc  def             opq'
    >>> str
    'abc	def		opq'
    >>> new_str=str.expandtabs()
    >>> new_str
    'abc     def             opq'
    >>> new_str=str.expandtabs(1)
    >>> new_str
    'abc def  opq'
    

    八、字符串的分割和组合:

    • S.split([sep, [maxsplit]]):以sep为分隔符,把S分成一个list。maxsplit表示分割的次数,取前maxsplit次。默认的分割符为空白字符
    • S.rsplit([sep, [maxsplit]]):以sep为分隔符,把S分成一个list。maxsplit表示分割的次数,取后maxsplit次。默认的分割符为空白字符
    • S.splitlines([keepends]):把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。
    • S.join(seq):把seq代表的序列──字符串序列,用S连接起来

    字符串的mapping,这一功能包含两个函数:

    • String.maketrans(from, to):返回一个256个字符组成的翻译表,其中from中的字符被一一对应地转换成to,所以from和to必须是等长的。

    • S.translate(table[,deletechars]):使用上面的函数产后的翻译表,把S进行翻译,并把deletechars中有的字符删掉。需要注意的是,如果S为unicode字符串,那么就不支持 deletechars参数,可以使用把某个字符翻译为None的方式实现相同的功能。此外还可以使用codecs模块的功能来创建更加功能强大的翻译表。

    举例:

    >>> str
    'python string function python'
    >>> str.split("on")   
    ['pyth', ' string functi', ' pyth', '']
    >>> str.split()
    ['python', 'string', 'function', 'python']
    >>> str.split("on",2)   #只分割两次,取前面两个“on”作为分隔符
    ['pyth', ' string functi', ' python']
    >>> str.rsplit("on")
    ['pyth', ' string functi', ' pyth', '']
    >>> str.rsplit()
    ['python', 'string', 'function', 'python']
    >>> str.rsplit("on",2)     #只分割两次,取后面两个“on”作为分隔符
    ['python string functi', ' pyth', '']
    >>> str="""aaaaaaaaaaaaaaaaa
    ... bbbbbbbbbbbbbbbbb
    ... ccccccccccccccccccccc"""
    >>> str
    'aaaaaaaaaaaaaaaaa
    bbbbbbbbbbbbbbbbb
    c
    ccccccccccccccccccccc'
    >>> str.splitlines()  #以换行符为分割,成为列表。str.split('
    ')
    ['aaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbb', 'ccccccccccccccccccccc']
    >>> str.splitlines(0)
    ['aaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbb', 'ccccccccccccccccccccc']
    >>> str.splitlines(1)  #保留分隔符
    ['aaaaaaaaaaaaaaaaa
    ', 'bbbbbbbbbbbbbbbbb
    ', 'ccccccccccccccccccccc']
    >>> list_1
    ['aaa', 'bbb', 'ccc']
    >>> str="*"
    >>> str.join(list_1)
    'aaa*bbb*ccc'
    >>> "".join(list_1)
    'aaabbbccc'
    

    九、其他的一些判断函数

    • s.isalnum():所有字符都是数字或者字母

    • s.isalpha():所有字符都是字母

    • s.isdigit():所有字符都是数字

    • s.islower():所有字符都是小写

    • s.isupper():所有字符都是大写

    • s.istitle():所有单词都是首字母大写,像标题

    • s.isspace():所有字符都是空白字符、 、

    • s.upper():把所有字符中的小写字母转换成大写字母

    • s.lower():把所有字符中的大写字母转换成小写字母

    • s.capitalize():把第一个字母转化为大写字母,其余小写

    • s.title():把每个单词的第一个字母转化为大写,其余小写

  • 相关阅读:
    给定一个十进制数M,以及需要转换的进制数N。 将十进制数M转化为N进制数
    java计算两条线段交点
    输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m 转载
    全排列 (递归求解+字典序) java 转载
    四大线程池详解(转载)
    生产者消费者简单实现(转载)
    进程 线程通信方式(转载)
    匿名对象和类名为数据类型(java)
    星星(java)
    杨辉三角(java)
  • 原文地址:https://www.cnblogs.com/wshenjin/p/7224584.html
Copyright © 2011-2022 走看看