Python字符串中查找子串小技巧
作者:junjie 发布时间:2022-04-16 10:58:04
标签:Python,字符串,查找,子串
惭愧啊,今天写了个查找子串的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])


猜你喜欢
- 今天来填坑, 昨天说playwright未必一定要使用pytest-playwright包。 它也可以和pyunit一起使用。那么今天,田辛
- 一、MySQl命令行客户端在Mysql安装完成后,Mysql命令行会自动配置在计算机上,在菜单中找到MySql 8.0 Command Li
- 模板图片如下:需识别的图片如下:一、模板预处理1.将模板设置为二值图2.检测模板的轮廓3.对模板轮廓排序,并将数字和轮廓一一对应,以字典存储
- 熟悉pandas的pythoner 应该知道给dataframe增加一列很容易,直接以字典形式指定就好了,pyspark中就不同了,摸索了一
- 目录一、善用组件让代码更有条理性1、 提取UI组件2、按模块提取业务组件3、按功能提取功能组件二、利用v-bind使组件的属性更具有可读性三
- python删除缓存文件的方法:首先输入“find.-name '__pycache__' -type d -exec rm
- getatter()通过方法名字符串调用方法,这个方法最主要的作用就是实现反射机制,也就是说可以通过字符串获取方法实例,这样就可以把一个类可
- js 日期 获取今天、昨天、明天第一个函数function getDay(day){ var today = ne
- 前言文章中的代码是参考基于Pytorch的特征图提取编写的代码本身很简单这里只做简单的描述。1. 效果图先看效果图(第一张是原图,后面的都是
- 很久以前做的东西,发出来大家玩玩!<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
- 各人觉得这些LOGO的设计都很好,简洁,明了,大方。特整理出来与大家分享,希望能吸取设计经验。asp之家祝愿各位09年身体健康,万事如意,网
- pytest官方文档fixtures调用既然fixtures是给执行测试做准备工作的,那么pytest如何知道哪些测试函数 或者 fixtu
- 本文实例讲述了Scrapy框架基本命令与settings.py设置。分享给大家供大家参考,具体如下:Scrapy框架基本命令1.创建爬虫项目
- 问题:根据数据某列进行分组,选择其中另一列大小top-K的的所在行数据解析:求解思路很清晰,即先用groupby对数据进行分组,然后再根据分
- 先贴出完整代码. <script type="text/javascript"> function Stri
- 一、.NET Framework Data Provider for SQL Server类型:.NET Framework类库使用:Sys
- 使用matplotlib创建百分比堆积柱状图的思路与堆积柱状图类似,只不过bottom参数累计的不是数值而是百分比,因此,需要事先计算每组柱
- 1. 时间差函数(TIMESTAMPDIFF、DATEDIFF)需要用MySQL计算时间差,使用TIMESTAMPDIFF、DATEDIFF
- 箱线图介绍箱线图(Box-plot)又称为盒式图或箱型图,是一种用来显示一组数据分散情况的统计图,它能显示一组数据的上界、下界、中位数、上下
- 今天的这篇文章是讲XHTML中的细节部分的,这篇续述的主题就是ID与CLASS怎么用,在标题中有提及使用原则与技巧,这里的使用原则与技巧是我