当前位置: 首页 > news >正文

python字符串查找-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])

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 小程序传送的文件带..djangoo怎么打开_系统自带小工具操作集锦1---------“运行”...
  • visio中公式太小_冲压模具冲床吨位计算公式、实例分析,设计师值得一看
  • access通过身份证号提取性别_从身份证号中批量提取生日、年龄、性别……3秒就搞定...
  • 透明图片下载求全透明png图片_25000张PNG免抠透明图片,13G送给你,PS设计师免费领...
  • string不是std的成员_C++ string 源码实现对比
  • mqtt协议_MQTT协议解析
  • c++ 定时器_555定时器内部框图及电路工作原理
  • 华为vxlan配置案例_华为企业级交换机在中型网络中链路类型配置案例
  • python datetime 加一个月_Python datetime模块:表示昨天,上个小时,上个月
  • python怎么读出当前时间_python获取当前时间的用法
  • python批量生成多个折线图_py matplotlib 多个figure同时画多个图以及多个图例多个折线图...
  • python自定义函数返回值_python定义函数时的默认返回值
  • python gui选择_Python之GUI的最终选择(Tkinter)
  • c++输出二进制数_php怎么根据生日输出年龄
  • python检测特定颜色的形状_python opencv 检测特定颜色
  • ECMAScript6(0):ES6简明参考手册
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • java8 Stream Pipelines 浅析
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • markdown编辑器简评
  • 安卓应用性能调试和优化经验分享
  • 闭包,sync使用细节
  • 编写高质量JavaScript代码之并发
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 后端_ThinkPHP5
  • 技术发展面试
  • 如何利用MongoDB打造TOP榜小程序
  • 跳前端坑前,先看看这个!!
  • 项目管理碎碎念系列之一:干系人管理
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • No resource identifier found for attribute,RxJava之zip操作符
  • Linux权限管理(week1_day5)--技术流ken
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​HTTP与HTTPS:网络通信的安全卫士
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #pragma once与条件编译
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $.each()与$(selector).each()
  • (笔记)M1使用hombrew安装qemu
  • (分享)自己整理的一些简单awk实用语句
  • (九)One-Wire总线-DS18B20
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (循环依赖问题)学习spring的第九天
  • (一)80c52学习之旅-起始篇
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • ./和../以及/和~之间的区别
  • .Family_物联网
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core WebAPI中封装Swagger配置
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • @Autowired和@Resource装配