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']
原文地址:https://www.cnblogs.com/cmnz/p/6953448.html