python找到字符中空格所在的位置_Python_字符串查找与分隔

本文介绍了Python中字符串处理的常用方法,如find(), rfind()用于定位子串,split()和partition()用于分割字符串。通过实例演示了如何快速定位子串位置、进行范围查找以及处理列表分隔。对比了find()和逐字符比较的效率差异。
摘要由CSDN通过智能技术生成

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 importascii_letters18 from random importchoice19 from time importtime20

21 letters = ''.join([choice(ascii_letters) for i in range(999999)])22 def positions_of_character(sentence,ch): #使用字符串呢对象的find()方法

23 result=[]24 index=025 index=sentence.find(ch,index+1)26 while index !=-1:27 result.append(index)28 index=sentence.find(ch,index+1)29 returnresult30

31 def demo(s,c): #普通方法,逐个字符比较

32 result=[]33 for i,ch inenumerate(s):34 if ch==c:35 result.append(i)36 returnresult37

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\n\n My nname is zWrite'

74 li6=s2.split()75 print(li6)76 #['hello', 'world', 'My', 'name', 'is', 'zWrite']

77 s3='\n\nhello world\n\n\n My name is zWrite'

78 li7=s3.split()79 print(li7)80 #['hello', 'world', 'My', 'name', 'is', 'zWrite']

81 s4='\n\nhello\t\t world \n\n\n My name is zWrite'

82 li8=s4.split()83 print(li8)84 #['hello', 'world \n\n\n My name is zWrite']

85

86 #split()与rsplit()方法允许指定最大分隔次数

87 s5='\n\nhello\t\t world \n\n\n My name is zWrite'

88 print(s5.split(maxsplit=1)) #分隔1次

89 li9=s5.rsplit(maxsplit=1)90 print(li9)91 #['\n\nhello\t\t world \n\n\n My name is', 'zWrite']

92 li10=s5.split(maxsplit=20) #最大分隔次数大于实际可分隔次数时,自动忽略

93 print(li10)94 #['hello', 'world', 'My', 'name', 'is', 'zWrite']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值