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编写一个简单的FUSE文件系统的教程
Apr 02 Python
Python编程中time模块的一些关键用法解析
Jan 19 Python
python模块简介之有序字典(OrderedDict)
Dec 01 Python
django 发送手机验证码的示例代码
Apr 25 Python
在python中pandas读文件,有中文字符的方法
Dec 12 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
python conda操作方法
Sep 11 Python
python能开发游戏吗
Jun 11 Python
Django项目如何获得SSL证书与配置HTTPS
Apr 30 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
python 中yaml文件用法大全
Jul 04 Python
使用python绘制分组对比柱状图
Apr 21 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防攻击代码升级版
2010/12/29 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
取得元素的左和上偏移量的方法
2014/09/17 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
python tkinter实现屏保程序
2019/07/30 Python
pandas数据处理进阶详解
2019/10/11 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
竞争上岗实施方案
2014/03/21 职场文书
数学高效课堂实施方案
2014/03/29 职场文书
政治思想表现评语
2014/05/04 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
学校党员干部承诺书
2015/05/04 职场文书
教师考核鉴定意见
2015/06/05 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
python-for x in range的用法(注意要点、细节)
2021/05/10 Python