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])
0
投稿
猜你喜欢
- “你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起
- 您可以将SQL Server 数据库引擎升级到 SQL Server 2008。SQL Server 安装程序只需最少的用户干预就可升级 S
- 异步操作数据的方式有两种常见的方式:XMLHttpRequest 和 iframe. 孰优孰劣在此我们不争论,只是想举一个例子说明在获取网片
- 1. 规范简介本规范主要规定ASP源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使项目开发人员的源代码书写习惯保持一致。这样
- 1、定义路由// 阿里云文件储存Route::group(['prefix'=>'aliyun'],
- ISNULL 使用指定的替换值替换 NULL。 &nb
- 一. 认证系统概要create_user 创建用户authenticate 验证登录login 记住用户的登录状态logout 退出登录is
- 一个拖动层和Onmouse自动下拉效果,IE支持,不支持ff。下面所示的效果四个小块可以拖动到页面任意点,大黑块可以连同四个小块随动。<
- Linux环境MySQL服务器级优化讲解 摘要:本节简单介绍了如何在服务器级优化数据库的性能
- 内容摘要:在本人上一篇教程《彻底弄懂CSS盒子模式五(定位强化练习) 》有讲到一个很酷的链接面板提示的实例制作,那时主要是用到di
- 代码如下:CREATE FUNCTION [dbo].[udf_DaysInMonth] ( @Date DATETIME )
- 本文实例讲述了PHP解析xml格式数据工具类。分享给大家供大家参考,具体如下:class ome_xml { /**  
- 小编最近由于工作原因要用到python,一门新的知识需要接触,对于我来说难度还是很大的。python工程目录结构每次创建一个python工程
- 引言:一开始二维码加群,但是呢,这个东西隔一段时间会过期,我需要 每隔一段时间去更新二维码,然后当群人数超过100人了,只能邀请进群, 这个
- ASP访问数据库的方式有哪些?在ASP中可以通过三种方式访问数据库:1、IDC(Internet Database Connec
- 农业银行总行1998年以来正式推广了新版网络版综合业务统计信息系统,该系统是基于WindowsNT4.0平台,采用客户/服务器模式,以Mic
- 1.样式的重用性CSS布局的网页最大的特点就是样式的可重用性,利用class选择符重复将某个样式属性多次在网页中使用,以减少不断定义样式属性
- 安装SQL Server 遇到错误提示:以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机!。找了半天
- 今天 大白 问了一个关于CSS权重的问题:关于选择器权重的问题 。class的权重是10 标签权重是 1 。比如说 p span{} 权重是
- 本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下:前言:深度优先遍历:对