#字符串常用方法
s='apple,peach,banana,peach,pear'
#返回第一次出现的位置
print(s.find('peach'))
#指定位置开始查找
print(s.find('peach',7))
#指定范围中进行查找
print(s.find('peach',7,20))
#从字符串尾部向前查找
print(s.rfind('p'))
#返回首次出现的位置
print(s.index('p'))
#统计子字符串出现的次数
print(s.count('p')) #Python内置函数和内置对象的方法,运行速度快,并且运行稳定。
from string import ascii_letters
from random import choice
from time import time letters = ''.join([choice(ascii_letters) for i in range(999999)])
def positions_of_character(sentence,ch): #使用字符串呢对象的find()方法
result=[]
index=0
index=sentence.find(ch,index+1)
while index !=-1:
result.append(index)
index=sentence.find(ch,index+1)
return result def demo(s,c): #普通方法,逐个字符比较
result=[]
for i,ch in enumerate(s):
if ch==c:
result.append(i)
return result start = time()
positions_of_character(letters,'a')
print(time()-start) #0.008852958679199219 start=time()
p=demo(letters,'a')
print(time()-start) #0.0904378890991211 #split()从字符串左端开始将其分隔成多个字符串,并返回包含分隔结果的列表 #rsplit()从字符串右端开始将其分隔成多个字符串,并返回包含分隔结果的列表 #partition()、rpartition()用来以指定字符串为分隔符将原字符串分隔为3部分,即分隔符之前的字符串、分隔符字符串和分隔符之后的字符串。如果指定的分隔符不再原字符串中,则返回原字符串和两个空字符串 s='apple,peach,banana,pear'
li=s.split(',')
print(li)
li2=s.partition(',') #从左侧使用逗号进行切分
print(li2)
#('apple,peach,banana,pear', '', '')
li3=s.rpartition(',')
print(li3)
#('apple,peach,banana', ',', 'pear')
li4=s.rpartition('banana') #使用字符串作为分隔符
print(li4)
# ('apple,peach,', 'banana', ',pear')
s1='2014-10-31'
t=s1.split('-')
print(t)
# [2014, 10, 31]
li5=list(map(int,t)) #将分隔结果转换为整数
print(li5)
# ['hello', 'world', 'My', 'nname', 'is', 'zWrite'] #对于split()和rsplit()方法,如果不知定分隔符,则字符串中的任何空白字符(包括空格、换行符、制表符等)的连续出现都将被认为是分隔符,返回包含最终分隔结果的列表
s2='hello world\n\n My nname is zWrite'
li6=s2.split()
print(li6)
# ['hello', 'world', 'My', 'name', 'is', 'zWrite']
s3='\n\nhello world\n\n\n My name is zWrite '
li7=s3.split()
print(li7)
# ['hello', 'world', 'My', 'name', 'is', 'zWrite']
s4='\n\nhello\t\t world \n\n\n My name is zWrite '
li8=s4.split()
print(li8)
# ['hello', 'world \n\n\n My name is zWrite'] #split()与rsplit()方法允许指定最大分隔次数
s5='\n\nhello\t\t world \n\n\n My name is zWrite'
print(s5.split(maxsplit=1)) #分隔1次
li9=s5.rsplit(maxsplit=1)
print(li9)
# ['\n\nhello\t\t world \n\n\n My name is', 'zWrite']
li10=s5.split(maxsplit=20) #最大分隔次数大于实际可分隔次数时,自动忽略
print(li10)
#['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. 一起来搭简单的App框架

    1.概述 最近在学车,抽着空写了一个常用的App框架,可惜不会制作gif图片,请忽略录屏软件的那个浮动窗口,要是有更好的方式制作gif麻烦告知下提前感谢,效果图如下,凑合着看下吧. 主要实现了 [1] ...

  2. 【公开课】【阿里在线技术峰会】魏鹏:基于Java容器的多应用部署技术实践

    对于公开课,可能目前用不上这些,但是往往能在以后想解决方案的时候帮助到我.以下是阿里对公开课的整理 摘要: 在首届阿里巴巴在线峰会上,阿里巴巴中间件技术部专家魏鹏为大家带来了题为<基于Java容 ...

  3. PS图层混合算法之四(亮光, 点光, 线性光, 实色混合)

    亮光模式: 根据绘图色通过增加或降低"对比度",加深或减淡颜色.如果绘图色比50%的灰亮,图像通过降低对比度被照亮,如果绘图色比50%的灰暗,图像通过增加对比度变暗. 线性光模式: ...

  4. Android UI技巧(一)——Android中伸缩自如的9patch图片切法,没有美工自给自足

    Android UI技巧(一)--Android中伸缩自如的点9图片切法,没有美工自给自足 相信大家对.9 图片应该都很熟悉吧,有些人可能自己都会了,此篇献给那些不会的同学,咱们一起来聊聊.9图片的切 ...

  5. WinCE上BINFS实现详解

    网上不少介绍三星24x0系列的BINFS启动方式实现,有些内容上描述的不是非常全面 下面就WinCE6上的BINFS实现,从基本原理到修改BSP,再到如何烧录启动做一个较全面的讲解 一 BINFS到底 ...

  6. PS 滤镜算法原理——曝光过度

    这个算法的原理,就是将图像反相,然后分别比较原图与反相后的图三个通道的大小,将小的值输出. clc; clear all; Image=imread('4.jpg'); Image=double(Im ...

  7. 关于linux内核驱动开发中Makefile编译的问题

    obj-y:打个比方,我要编译的是hello.c这个文件,obj-y就会把hello.c或者hello.c编译生成的hello.s文件链接到内核中去. obj-m:打个比方,我要编译的是hello.c ...

  8. LeetCode(44)- Isomorphic Strings

    题目: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the c ...

  9. python标准库Beautiful Soup与MongoDb爬喜马拉雅电台的总结

    Beautiful Soup标准库是一个可以从HTML/XML文件中提取数据的Python库,它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式,Beautiful Soup将会节省数小 ...

  10. JDBC基本使用

    J2EE技术规范(二)——JDBC 分类: java2012-12-03 14:25 1060人阅读 评论(8) 收藏 举报 一.了解JDBC (1) JDBC是以统一方式访问数据库的API (2) ...