Python判断字符串是否包含特定子串的7种方法

在写代码的过程中,我们经常会遇到这样一个需求:判断字符串中是否包含某个关键词,也就是特定的子字符串。比如从一堆书籍名称中找出含有“python”的书名。

判断两个字符串相等很简单,直接 == 就可以了。其实判断包含子串也非常容易,而且还不止一种方法。下面我们就给大家分享 7 种可以达到此效果的方法:

1、使用 in 和 not in

innot 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

你平常会用哪种方法呢?或者你还有其他写法?欢迎在留言中给出。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Python的in关键字来判断字符串是否包含指定的子串。示例代码如下: ```python string = "hello world" if "world" in string: print("字符串包含'world'") else: print("字符串包含'world'") ``` 输出结果为:字符串包含'world'。 如果需要判断字符串是否包含多个子串,可以使用多个in关键字进行判断。示例代码如下: ```python string = "hello world" if "hello" in string and "world" in string: print("字符串同时包含'hello'和'world'") else: print("字符串不同时包含'hello'和'world'") ``` 输出结果为:字符串同时包含'hello'和'world'。 ### 回答2: 要在Python判断一个字符串是否包含另一个字符串,可以使用in关键字。该关键字可以用来判断一个字符串是否是另一个字符串子串。 例如,我们有一个字符串name = "Hello World!",想要判断是否包含子串"World",可以使用以下代码: if "World" in name: print("字符串包含子串'World'") 运行结果为"字符串包含子串'World'",说明name字符串包含子串"World"。 另外,可以结合条件判断语句和循环语句,来判断一个字符串是否包含多个子串。例如: name = "Hello World!" substrings = ["Hello", "World"] for substring in substrings: if substring in name: print(f"字符串包含子串'{substring}'") 运行结果为"字符串包含子串'Hello'"和"字符串包含子串'World'",说明name字符串同时包含子串"Hello"和"World"。 总结:使用in关键字可以判断一个字符串是否包含另一个字符串,可以通过条件判断语句和循环语句来判断多个子串是否包含字符串。 ### 回答3: 要判断一个字符串是否包含特定的字符或者字符串,我们可以使用Python的关键字"in"。通过使用"in"关键字,我们可以直接判断某个字符串是否包含在另一个字符串。 例如,我们想要判断字符串s是否包含字符串sub: ```python s = "hello world" sub = "world" if sub in s: print("字符串s包含字符串sub") else: print("字符串s包含字符串sub") ``` 上述代码,我们首先声明了字符串s和子字符串sub,然后使用"in"关键字判断sub是否在s。如果sub在s,则会输出"字符串s包含字符串sub",否则输出"字符串s包含字符串sub"。 除了"in"关键字外,python字符串还有其他的相关方法可以用于判断字符串是否包含特定字符或子字符串,比如: 1. `find()`方法:返回第一次出现特定字符串的起始索引,如果找不到则返回-1。 2. `index()`方法:返回第一次出现特定字符串的起始索引,如果找不到则会抛出ValueError异常。 3. `count()`方法:返回特定字符串字符串出现的次数。 总之,Python提供了多方法判断一个字符串是否包含特定的字符或子字符串,并且可以根据实际需要选择最适合的方法来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值