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\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']

Python_字符串查找与分隔的更多相关文章

  1. Rabin-Karp指纹字符串查找算法

    首先计算模式字符串的散列函数, 如果找到一个和模式字符串散列值相同的子字符串, 那么继续验证两者是否匹配. 这个过程等价于将模式保存在一个散列表中, 然后在文本中的所有子字符串查找. 但不需要为散列表 ...

  2. 自己动手写文件查找,字符串查找,查询jar包等工具

    文件查找——搜索当前目录下的文件 知道大概的文件名称,使用 findf FileName findf.py import argparse, re, os from os.path import jo ...

  3. 关于字符串查找 charindex ,Patindex 还有一个like

    字符串查找.在模糊朝找的情况下,其实3者的效率是差不多的.都需要一个一个取出来然后扫一遍╮(╯_╰)╭.然而用法还是会有一点儿的区别 1 charindex (查找的字符串,字符串表达式[,开始查找的 ...

  4. python 字符串查找

    python 字符串查找有4个方法,1 find,2 index方法,3 rfind方法,4 rindex方法. 1 find()方法: )##从下标1开始,查找在字符串里第一个出现的子串:返回结果3 ...

  5. Sunday算法(字符串查找、匹配)

    字符串查找算法中,最著名的两个是KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore).两个算法在最坏情况下均具有线性的查找时间.但是在实用上,KMP算法并不比最简单的 ...

  6. lintcode:strStr 字符串查找

    题目: 字符串查找 字符串查找(又称查找子字符串),是字符串操作中一个很有用的函数.你的任务是实现这个函数. 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source ...

  7. Rabin-Karp字符串查找算法

    1.简介 暴力字符串匹配(brute force string matching)是子串匹配算法中最基本的一种,它确实有自己的优点,比如它并不需要对文本(text)或模式串(pattern)进行预处理 ...

  8. php中常用的字符串查找函数strstr()、strpos()实例解释

    string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) 1.$haystack被查找的字 ...

  9. 数据结构与算法--Boyer-Moore和Rabin-Karp子字符串查找

    数据结构与算法--Boyer-Moore和Rabin-Karp子字符串查找 Boyer-Moore字符串查找算法 注意,<算法4>上将这个版本的实现称为Broyer-Moore算法,我看了 ...

随机推荐

  1. Android平台根目录文件

    > 系统分区 # adb shell # mount rootfs / rootfs ro 0 0 tmpfs /dev tmpfs rw,mode=755 0 0 devpts /dev/pt ...

  2. ActionScript 3.0 API 中的 Video 类

    注:这个类在Flash流媒体开发中使用的很频繁,在此记录一下它的使用方法. 包 flash.media 类 public class Video 继承 Video  DisplayObject  Ev ...

  3. 一个 developer 的进化

    作为一名开发者已十年,回顾过往大概经历了这么几个阶段,如下图所示: Develop Code 作为刚走出学校的学生进入公司,在最初的 1-2 年内就处于该阶段. 不停的开发代码,为系统的大厦添砖加瓦, ...

  4. 如何取得ChipmunkConstraint实例对象的私有属性

    在 如何用代码禁用SpriteBuilder中创建的关节 一篇中提到了要想禁用一个关节就需要将其无效化. 然后我们在重新创建新关节时,可以参考该关节的原始参数. 但是代码中只能直接访问到bodyA和b ...

  5. PS图层混合算法之六(差值,溶解, 排除)

    差值模式: 查看每个通道中的颜色信息,比较底色和绘图色,用较亮的像素点的像素值减去较暗的像素点的像素值.与白色混合将使底色反相:与黑色混合则不产生变化. 排除模式可生成和差值模式相似的效果,但比差值模 ...

  6. 认识Zygote

    概述 在java中不同的虚拟机实例会为不同的应用分配不同内存,为了使Android系统尽快启动,使用了Zygote来预加载核心类库和一些加载时间长的类(超过1250ms),让Dalvik虚拟机共享代码 ...

  7. 网站开发进阶(十八)js获取html标签中的值

    js获取html标签中的值 项目开发过程中,由于需求所迫,需要获取html标签元素中的内容,下面做一简单总结.以下所讲的示例适用于其它标签元素. 主要包括2中方法获取元素内容: 方法一:.innerT ...

  8. TCP连接建立系列 — TCP选项解析

    本文主要分析:在收到客户端的SYN包时,服务器端是如何解析它所携带的TCP选项,并结合本端情况决定是否予以支持. 内核版本:3.6 Author:zhangskd @ csdn blog 概述 收到客 ...

  9. iOS中获取本地通讯录联系人以及汉字首字母排序

    iOS中获取手机通讯录中的联系人信息: /*** 加载本地联系人*/ - (void)loadLocalContacts { //新建一个通讯录类 ABAddressBookRef addressBo ...

  10. 基于ARM-contexA9-蜂鸣器pwm驱动开发

    上次,我们写过一个蜂鸣器叫的程序,但是那个程序仅仅只是驱动蜂鸣器,用电平1和0来驱动而已,跟驱动LED其实没什么两样.我们先来回顾一下蜂鸣器的硬件还有相关的寄存器吧: 还是和以前一样的步骤: 1.看电 ...