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 31 Python
Python实现的彩票机选器实例
Jun 17 Python
浅谈python中的实例方法、类方法和静态方法
Feb 17 Python
python 常见字符串与函数的用法详解
Nov 23 Python
python:接口间数据传递与调用方法
Dec 17 Python
在python里面运用多继承方法详解
Jul 01 Python
python for和else语句趣谈
Jul 02 Python
基于django micro搭建网站实现加水印功能
May 22 Python
django 装饰器 检测登录状态操作
Jul 02 Python
python如何调用php文件中的函数详解
Dec 29 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 Python
理解深度学习之深度学习简介
Apr 14 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
PHP Smarty生成EXCEL文档的代码
2008/08/23 PHP
php短域名转换为实际域名函数
2011/01/17 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
js中replace的用法总结
2013/12/27 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
python获取远程图片大小和尺寸的方法
2015/03/26 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
仓库管理专业个人自我评价范文
2013/11/11 职场文书
普师专业个人自荐信范文
2013/11/26 职场文书
简历中的自我评价范文
2014/02/05 职场文书
创建文明城市标语
2014/06/16 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
婚庆主持词大全
2015/06/30 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang
Python中使用subprocess库创建附加进程
2021/05/11 Python
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
php png失真的原因及解决办法
2021/10/24 PHP