python七种方法判断字符串是否包含子串

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 字符串的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python实现判断一个字符串是否包含子串的方法总结

    本文实例总结了Python实现判断一个字符串是否包含子串的方法.分享给大家供大家参考,具体如下: 1.使用成员操作符 in >>> s='nihao,shijie' >>> t='nihao' >>> result = t in s >>> print result True 2.使用string模块的find()/rfind()方法 >>> import string >>> s='nihao,s

  • Python实现统计给定字符串中重复模式最高子串功能示例

    本文实例讲述了Python实现统计给定字符串中重复模式最高子串功能.分享给大家供大家参考,具体如下: 给定一个字符串,如何得到其中重复模式最高的子字符串,我采用的方法是使用滑窗机制,对给定的字符串切分,窗口的大小从1增加到字符串长度减1,将所有的得到的切片统计结果,在这里不考虑单个字符的重复模式,好了,很简单看具体实现: #!usr/binenv python #encoding:utf-8 ''''' __Author__:沂水寒城 统计一个给定字符串中重复模式数量得到最高重复模式串 '''

  • Python字符串中查找子串小技巧

    惭愧啊,今天写了个查找子串的Python程序被BS了- 如果让你写一个程序检查字符串s2中是不是包含有s1.也许你会很直观的写下下面的代码: 复制代码 代码如下: #determine whether s1 is a substring of s2 def isSubstring1(s1,s2):     tag = False     len1 = len(s1)     len2 = len(s2)     for i in range(0,len2):         if s2[i] =

  • 在Python中实现替换字符串中的子串的示例

    假如有个任务: 给定一个字符串,通过查询字典,来替换给定字符中的变量.如果使用通常的方法: >>> "This is a %(var)s" % {"var":"dog"} 'This is a dog' >>> 其实可以使用string.Template类来实现上面的替换 >>> from string import Template >>> words = Template

  • Python简单实现查找一个字符串中最长不重复子串的方法

    本文实例讲述了Python简单实现查找一个字符串中最长不重复子串的方法.分享给大家供大家参考,具体如下: 刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现: #!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:找出来一个字符串中最长不重复子串 ''' def find_longest_no_repeat_substr(one_str): ''''' 找出来一个字符串中最长不重复子串 ''' res_list=[] le

  • Python实现针对给定字符串寻找最长非重复子串的方法

    本文实例讲述了Python实现针对给定字符串寻找最长非重复子串的方法.分享给大家供大家参考,具体如下: 问题: 给定一个字符串,寻找其中最长的重复子序列,如果字符串是单个字符组成的话如"aaaaaaaaaaaaa"那么满足要求的输出就是a 思路: 这里的思路有两种是我能想到的 (1)从头开始遍历字符串,设置标志位,在往后走的过程中当发现和之前标志位重合的时候就回头检查一下这个新出现的子串是否跟前面字符串或者前面字符串的子串相同,相同则记录该子串并计数加1,直至处理完毕 (2)利用滑窗切

  • python替换字符串中的子串图文步骤

    修改字符串本身是不可能的,因为字符串是不可变类型,只能是通过某些方法来产生它的副本.再把副本赋值给原字符串,达到类似替换的作用.这里介绍几种方法. 旧串换新串:使用str.replace(old, new, max) 1)字符串调用此函数时,将生成一个字符串的副本.副本中new将替代old. 2)old -原来的子串. 3)new-新子串,用于替换old. 4)max-最大替换个数,(可以不指定,为全部替换) 在指定max时,如果超出了old子串的个数,也是全部替换. 1.分割后筛选再连接: 分

  • python实现求两个字符串的最长公共子串方法

    如下所示: # coding:utf-8 ''' 求两个字符串的最长公共子串 思想:建立一个二维数组,保存连续位相同与否的状态 ''' def getNumofCommonSubstr(str1, str2): lstr1 = len(str1) lstr2 = len(str2) record = [[0 for i in range(lstr2+1)] for j in range(lstr1+1)] # 多一位 maxNum = 0 # 最长匹配长度 p = 0 # 匹配的起始位 for

  • python七种方法判断字符串是否包含子串

    1. 使用 in 和 not in in 和 not in 在 Python 中是很常用的关键字,我们将它们归类为 成员运算符. 使用这两个成员运算符,可以很让我们很直观清晰的判断一个对象是否在另一个对象中,示例如下: >>> "llo" in "hello, python" True >>> >>> "lol" in "hello, python" False 2. 使用

  • java 判断字符串是否包含子串的方法

    java 判断字符串是否包含子串的方法 方法一: String str1 = "nihaoksdoksad "; String str2 = "ok "; int total = 0; for (String tmp = str1; tmp != null&&tmp.length()> =str2.length();){ if(tmp.indexOf(str2) == 0){ total ++; } tmp = tmp.substring(1)

  • python判断字符串是否包含子字符串的方法

    本文实例讲述了python判断字符串是否包含子字符串的方法.分享给大家供大家参考.具体如下: python的string对象没有contains方法,不用使用string.contains的方法判断是否包含子字符串,但是python有更简单的方法来替换contains函数. 方法1:使用 in 方法实现contains的功能: site = 'http://www.jb51.net/' if "jb51" in site: print('site contains jb51') 输出结

  • PostgreSQL判断字符串是否包含目标字符串的多种方法

    PostgreSQL判断字符串包含的几种方法: 方式一: position(substring in string): position(substring in string)函数:参数一:目标字符串,参数二原字符串,如果包含目标字符串,会返回目标字符串笫一次出现的位置,可以根据返回值是否大于0来判断是否包含目标字符串 select position('aa' in 'abcd'); position ---------- 0 select position('ab' in 'abcd');

  • Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享

    一.判断字符串中包含中文字符的方法 遍历数组,对每个字节使用string.byte(),发现有大于127的,就是汉字,可以参照下面的代码. 二.计算字符串宽度函数 复制代码 代码如下: -- 计算字符串宽度   local str = "Jimmy: 你好,世界!" local fontSize = 20 local lenInByte = #str local width = 0   for i=1,lenInByte do     local curByte = string.by

  • PHP简单判断字符串是否包含另一个字符串的方法

    本文实例讲述了PHP简单判断字符串是否包含另一个字符串的方法.分享给大家供大家参考,具体如下: 在使用PHP判断某字符串中是否包含一个简单的子字符串的时候,我们通常会用到strpos()或者stristr()这两个函数,可是偏偏如果这个字符串的位置如果是在索引0位置,也就是说在要匹配的字符串的最开始,则会出问题. 当然我们还是有解决的方法的,这里就有一个笨办法,但是比较好用,无论中英文,标点符号都适用. 代码如下: function checkStr($str,$target) { $tmpAr

  • Python实现判断字符串中包含某个字符的判断函数示例

    本文实例讲述了Python实现判断字符串中包含某个字符的判断函数.分享给大家供大家参考,具体如下: #coding=utf8 #参数包含两个: #containVar:查找包含的字符 #stringVar:所要查找的字符串 def containVarInString(containVar,stringVar): try: if isinstance(stringVar, str): if stringVar.find(containVar): return True else: return

  • Python 炫技操作之合并字典的七种方法

    Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的.在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神. 但你要知道,在团队合作里,炫技是大忌. 为什么这么说呢?我说下自己的看法: 越简洁的代码,越清晰的逻辑,就越不容易出错: 在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一个良好的品德 简单的代码,只会用到最基本的语法糖,复杂的高级特性,会有更多的依赖(如语言的版本) 该篇是「炫技系列」的第二篇内容,

  • Python中可以用三种方法判断文件是否存在

    目录 1.使用os模块 2.使用Try语句 3. 使用pathlib模块 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try语句.pathlib模块. 1.使用os模块 os模块中的os.path.exists()方法用于检验文件是否存在. 判断文件是否存在 import os os.path.exists(test_file.txt) #True

随机推荐