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中的split()函数的使用方法
Apr 07 Python
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 Python
Python简单读取json文件功能示例
Nov 30 Python
使用python对文件中的数值进行累加的实例
Nov 28 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
Django 接收Post请求数据,并保存到数据库的实现方法
Jul 12 Python
Python笔记之观察者模式
Nov 20 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
Jan 06 Python
OpenCV Python实现拼图小游戏
Mar 23 Python
Python包资源下载路径报404解决方案
Nov 05 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Jun 28 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中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
php处理带有中文URL的方法
2016/07/11 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
js实现数组转换成json
2015/06/26 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
2016/08/08 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
web.py中调用文件夹内模板的方法
2014/08/26 Python
Python装饰器基础详解
2016/03/09 Python
python生成二维码的实例详解
2017/10/29 Python
python3 下载网络图片代码实例
2019/08/27 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
雏鹰争章活动总结
2014/05/09 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS