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 unt(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
>>>
>>> ains("hello, python", "llo")
True
>>> ains("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 字符串的资料请关注其它相关⽂章!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。