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实现简单网页图片抓取完整代码实例
Dec 15 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
Jan 24 Python
Python自定义线程池实现方法分析
Feb 07 Python
Python2中文处理纪要的实现方法
Mar 10 Python
python的scikit-learn将特征转成one-hot特征的方法
Jul 10 Python
python接口自动化(十六)--参数关联接口后传(详解)
Apr 16 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
Python socket聊天脚本代码实例
Jan 02 Python
基于pytorch的lstm参数使用详解
Jan 14 Python
Python 格式化打印json数据方法(展开状态)
Feb 27 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
PyTorch的Debug指南
May 07 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
PHP中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
php导入导出excel实例
2013/10/25 PHP
php实现源代码加密的方法
2015/07/11 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
关于js datetime的那点事
2011/11/15 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
2016/08/12 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
详解js类型判断
2018/05/22 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
VUE实现密码验证与提示功能
2019/10/18 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
初步解析Python下的多进程编程
2015/04/28 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
python图形用户接口实例详解
2019/12/16 Python
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
销售人员自我评价
2014/02/01 职场文书
闭幕式主持词
2014/04/02 职场文书
企业年度评优方案
2014/06/02 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
2014年体育部工作总结
2014/11/13 职场文书
2015年机械设备管理工作总结
2015/05/04 职场文书
浅谈Redis中的RDB快照
2021/06/29 Redis
php去除deprecated的实例方法
2021/11/17 PHP
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers