python七种方法判断字符串是否包含子串


Posted in Python onAugust 18, 2020

1. 使用 in 和 not in

in 和 not in 在 Python 中是很常用的关键字,我们将它们归类为 成员运算符。

使用这两个成员运算符,可以很让我们很直观清晰的判断一个对象是否在另一个对象中,示例如下:

>>> "llo" in "hello, python" 
True 
>>> 
>>> "lol" in "hello, python" 
False

2. 使用 find 方法

使用 字符串 对象的 find 方法,如果有找到子串,就可以返回指定子串在字符串中的出现位置,如果没有找到,就返回 -1

>>> "hello, python".find("llo") != -1 
True 
>>> "hello, python".find("lol") != -1 
False 
>>

3. 使用 index 方法

字符串对象有一个 index 方法,可以返回指定子串在该字符串中第一次出现的索引,如果没有找到会抛出异常,因此使用时需要注意捕获。

def is_in(full_str, sub_str): 
  try: 
    full_str.index(sub_str) 
    return True 
  except ValueError: 
    return False 
 
print(is_in("hello, python", "llo")) # True 
print(is_in("hello, python", "lol")) # False

4. 使用 count 方法

利用和 index 这种曲线救国的思路,同样我们可以使用 count 的方法来判断。

只要判断结果大于 0 就说明子串存在于字符串中。

def is_in(full_str, sub_str): 
  return full_str.count(sub_str) > 0 
 
print(is_in("hello, python", "llo")) # True 
print(is_in("hello, python", "lol")) # False

5. 通过魔法方法

在第一种方法中,我们使用 in 和 not in 判断一个子串是否存在于另一个字符中,实际上当你使用 in 和 not in 时,Python 解释器会先去检查该对象是否有 __contains__ 魔法方法。

若有就执行它,若没有,Python 就自动会迭代整个序列,只要找到了需要的一项就返回 True 。

示例如下:

>>> "hello, python".__contains__("llo") 
True 
>>> 
>>> "hello, python".__contains__("lol") 
False 
>>>

这个用法与使用 in 和 not in 没有区别,但不排除有人会特意写成这样来增加代码的理解难度。

6. 借助 operator

operator模块是python中内置的操作符函数接口,它定义了一些算术和比较内置操作的函数。operator模块是用c实现的,所以执行速度比 python 代码快。

在 operator 中有一个方法 contains 可以很方便地判断子串是否在字符串中。

>>> import operator 
>>> 
>>> operator.contains("hello, python", "llo") 
True 
>>> operator.contains("hello, python", "lol") 
False 
>>>

7. 使用正则匹配

说到查找功能,那正则绝对可以说是专业的工具,多复杂的查找规则,都能满足你。

对于判断字符串是否存在于另一个字符串中的这个需求,使用正则简直就是大材小用。

import re 
 
def is_in(full_str, sub_str): 
  if re.findall(sub_str, full_str): 
    return True 
  else: 
    return False 
 
print(is_in("hello, python", "llo")) # True 
print(is_in("hello, python", "lol")) # False

以上就是python七种方法判断字符串是否包含子串的详细内容,更多关于python 字符串的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python标准算法实现数组全排列的方法
Mar 17 Python
python自动zip压缩目录的方法
Jun 28 Python
python多进程共享变量
Apr 06 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
Dec 15 Python
老生常谈Python startswith()函数与endswith函数
Sep 08 Python
django 在原有表格添加或删除字段的实例
May 27 Python
Django使用详解:ORM 的反向查找(related_name)
May 30 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
Jul 31 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
python中time库的实例使用方法
Oct 31 Python
Python实现搜索算法的实例代码
Jan 02 Python
Opencv python 图片生成视频的方法示例
Nov 18 Python
Python使用socket模块实现简单tcp通信
Aug 18 #Python
python 浮点数四舍五入需要注意的地方
Aug 18 #Python
Python filter过滤器原理及实例应用
Aug 18 #Python
Python lambda表达式原理及用法解析
Aug 18 #Python
python 使用建议与技巧分享(四)
Aug 18 #Python
Python正则re模块使用步骤及原理解析
Aug 18 #Python
python使用建议技巧分享(三)
Aug 18 #Python
You might like
全国FM电台频率大全 - 13 福建省
2020/03/11 无线电
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
浅谈JS继承_寄生式继承 & 寄生组合式继承
2016/08/16 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
用vue和node写的简易购物车实现
2017/04/25 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
Python实现区域填充的示例代码
2021/02/03 Python
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
报关简历自我评价怎么写
2013/09/19 职场文书
毕业生求职自荐信怎么写
2014/01/08 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
锅炉工岗位职责
2015/02/13 职场文书
技术支持岗位职责
2015/02/13 职场文书
毕业生对母校寄语
2015/02/26 职场文书
2015年员工工作总结范文
2015/04/08 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
教师外出学习心得体会
2016/01/18 职场文书
Python os和os.path模块详情
2022/04/02 Python