• Python_字符串查找与分隔


     1 #字符串常用方法
     2 s='apple,peach,banana,peach,pear'
     3 #返回第一次出现的位置
     4 print(s.find('peach'))
     5 #指定位置开始查找
     6 print(s.find('peach',7))
     7 #指定范围中进行查找
     8 print(s.find('peach',7,20)) 
     9 #从字符串尾部向前查找
    10 print(s.rfind('p'))
    11 #返回首次出现的位置
    12 print(s.index('p'))
    13 #统计子字符串出现的次数
    14 print(s.count('p'))
    15 
    16 #Python内置函数和内置对象的方法,运行速度快,并且运行稳定。
    17 from string import ascii_letters
    18 from random import choice
    19 from time import time
    20 
    21 letters = ''.join([choice(ascii_letters) for i in range(999999)])
    22 def positions_of_character(sentence,ch):    #使用字符串呢对象的find()方法
    23     result=[]
    24     index=0
    25     index=sentence.find(ch,index+1)
    26     while index !=-1:
    27         result.append(index)
    28         index=sentence.find(ch,index+1)
    29     return result
    30 
    31 def demo(s,c):  #普通方法,逐个字符比较
    32     result=[]
    33     for i,ch in enumerate(s):
    34         if ch==c:
    35             result.append(i)
    36     return result
    37 
    38 start = time()
    39 positions_of_character(letters,'a')
    40 print(time()-start)  #0.008852958679199219
    41 
    42 start=time()
    43 p=demo(letters,'a')
    44 print(time()-start) #0.0904378890991211
    45 
    46 #split()从字符串左端开始将其分隔成多个字符串,并返回包含分隔结果的列表
    47 
    48 #rsplit()从字符串右端开始将其分隔成多个字符串,并返回包含分隔结果的列表
    49 
    50 #partition()、rpartition()用来以指定字符串为分隔符将原字符串分隔为3部分,即分隔符之前的字符串、分隔符字符串和分隔符之后的字符串。如果指定的分隔符不再原字符串中,则返回原字符串和两个空字符串
    51 
    52 s='apple,peach,banana,pear'
    53 li=s.split(',')
    54 print(li)
    55 li2=s.partition(',')    #从左侧使用逗号进行切分
    56 print(li2)
    57 #('apple,peach,banana,pear', '', '')
    58 li3=s.rpartition(',')
    59 print(li3)
    60 #('apple,peach,banana', ',', 'pear')
    61 li4=s.rpartition('banana')  #使用字符串作为分隔符
    62 print(li4)
    63 # ('apple,peach,', 'banana', ',pear')
    64 s1='2014-10-31'
    65 t=s1.split('-')
    66 print(t)
    67 # [2014, 10, 31]
    68 li5=list(map(int,t))    #将分隔结果转换为整数
    69 print(li5)
    70 # ['hello', 'world', 'My', 'nname', 'is', 'zWrite']
    71 
    72 #对于split()和rsplit()方法,如果不知定分隔符,则字符串中的任何空白字符(包括空格、换行符、制表符等)的连续出现都将被认为是分隔符,返回包含最终分隔结果的列表
    73 s2='hello world
    
     My nname is zWrite'
    74 li6=s2.split()
    75 print(li6)
    76 # ['hello', 'world', 'My', 'name', 'is', 'zWrite']
    77 s3='
    
    hello world
    
    
     My name is zWrite     '
    78 li7=s3.split()
    79 print(li7)
    80 # ['hello', 'world', 'My', 'name', 'is', 'zWrite']
    81 s4='
    
    hello		 world 
    
    
     My name is zWrite    '
    82 li8=s4.split()
    83 print(li8)
    84 # ['hello', 'world 
    
    
     My name is zWrite']
    85 
    86 #split()与rsplit()方法允许指定最大分隔次数
    87 s5='
    
    hello		 world 
    
    
     My name is zWrite'
    88 print(s5.split(maxsplit=1))  #分隔1次
    89 li9=s5.rsplit(maxsplit=1)
    90 print(li9)
    91 # ['
    
    hello		 world 
    
    
     My name is', 'zWrite']
    92 li10=s5.split(maxsplit=20) #最大分隔次数大于实际可分隔次数时,自动忽略
    93 print(li10)
    94 #['hello', 'world', 'My', 'name', 'is', 'zWrite']
  • 相关阅读:
    HDU.6681.Rikka with Cake(欧拉公式 树状数组)
    Codeforces.449C.Willem, Chtholly and Seniorious(ODT)
    2017-2018 ACM-ICPC, Asia Daejeon Regional Contest (E,G,H,I,K)
    CF GYM.101987A.Circuits(线段树)
    2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)
    220
    219
    218
    217
    216
  • 原文地址:https://www.cnblogs.com/cmnz/p/6953448.html
Copyright © 2020-2023  润新知