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 相关文章推荐
Ubuntu 下 vim 搭建python 环境 配置
Jun 12 Python
深入理解Python单元测试unittest的使用示例
Nov 18 Python
Python基础教程之内置函数locals()和globals()用法分析
Mar 16 Python
Python中psutil的介绍与用法
May 02 Python
Python Web框架之Django框架文件上传功能详解
Aug 16 Python
Python3列表List入门知识附实例
Feb 09 Python
解决Django中checkbox复选框的传值问题
Mar 31 Python
jupyter lab文件导出/下载方式
Apr 22 Python
python中threading开启关闭线程操作
May 02 Python
python 元组的使用方法
Jun 09 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 Python
Python实现Excel自动分组合并单元格
Feb 22 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
JAVA/JSP学习系列之七
2006/10/09 PHP
解析php中memcache的应用
2013/06/18 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
php静态文件生成类实例分析
2015/01/03 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
2017/09/18 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
2020/07/21 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
Cython 三分钟入门教程
2009/09/17 Python
Python抽象类的新写法
2015/06/18 Python
python实现ID3决策树算法
2017/12/20 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
苹果台湾官网:Apple台湾
2019/01/05 全球购物
华为的Java面试题
2014/03/07 面试题
测绘工程个人的自我评价
2013/11/10 职场文书
创业资金计划书
2014/02/06 职场文书
新教师培训心得体会
2014/09/02 职场文书
论文答谢词
2015/01/20 职场文书
体育教师个人总结
2015/02/09 职场文书
解除处分决定书
2015/06/25 职场文书