Python字符串中查找子串小技巧


Posted in Python onApril 10, 2015

惭愧啊,今天写了个查找子串的Python程序被BS了…

如果让你写一个程序检查字符串s2中是不是包含有s1。也许你会很直观的写下下面的代码:

#determine whether s1 is a substring of s2 

def isSubstring1(s1,s2): 

    tag = False 

    len1 = len(s1) 

    len2 = len(s2) 

    for i in range(0,len2): 

        if s2[i] == s1[0]: 

            for j in range(0,len1): 

                if s2[i]==s1[j]: 

                    tag = True 

    return tag

可是这是Python,我们可以利用字符串自带的find()方法,于是可以这样:

def isSubstring2(s1,s2): 

    tag = False 

    if s2.find(s1) != -1: 

        tag = True 

    return tag

悲情的事就在于此,原来Python中的关键字"in”不仅可以用于列表、元祖等数据类型,还可以用于字符串。所以,这里只需要直接一行代码搞定:
def isSubstring3(s1,s2):

    return s1 in s2

后知后觉了,惭愧;-)

类似的,假设要在字符串中,查找多个子串是否存在,并打印出这些串和首次出现的位置:

def findSubstrings(substrings,destString):

    res =  map(lambda x:str([destString.index(x),x]),filter(lambda x:x in destString,substrings))

    if res:

        return ', '.join(list(res))

 

;-)  very cool~

UPDATE: 如果你不习惯最后面这种看起来很复杂的语法也没关系,可以使用列表解析,更加简洁:
def findSubstrings(substrings,destString):

    return ', '.join([str([destString.index(x),x]) for x in substrings if x in destString])
Python 相关文章推荐
python中getaddrinfo()基本用法实例分析
Jun 28 Python
将Python代码打包为jar软件的简单方法
Aug 04 Python
利用Python爬虫给孩子起个好名字
Feb 14 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
python实现感知器算法详解
Dec 19 Python
mac系统安装Python3初体验
Jan 02 Python
python PyTorch参数初始化和Finetune
Feb 11 Python
python实现推箱子游戏
Mar 25 Python
python 内置模块详解
Jan 01 Python
使用Python opencv实现视频与图片的相互转换
Jul 08 Python
如何卸载python插件
Jul 08 Python
Python创建临时文件和文件夹
Aug 05 Python
简单介绍Ruby中的CGI编程
Apr 10 #Python
详细介绍Ruby中的正则表达式
Apr 10 #Python
对于Python的Django框架部署的一些建议
Apr 09 #Python
Python线程中对join方法的运用的教程
Apr 09 #Python
在Python的Flask框架下使用sqlalchemy库的简单教程
Apr 09 #Python
详解Python中的正则表达式的用法
Apr 09 #Python
Python中几种操作字符串的方法的介绍
Apr 09 #Python
You might like
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
PHP获取页面执行时间的方法(推荐)
2016/12/10 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
用javascript实现画板的代码
2007/09/05 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
Python中函数参数匹配模型详解
2019/06/09 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
python中怎么表示空值
2020/06/19 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
护理职业应聘自荐书
2013/09/29 职场文书
社区健康教育实施方案
2014/03/18 职场文书
活动总结怎么写啊
2014/05/07 职场文书
出租房屋协议书
2014/09/14 职场文书
成都人事代理协议书
2014/10/25 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL