检查 Python 字符串是否包含字符

2024 年 8 月 29 日 | 阅读 3 分钟

在每种编程语言中,最常见的操作之一是确定给定字符串是否包含子字符串。Python 提供了多种方法来确定给定字符串是否包含字符。“in”运算符是 Python 中用于比较操作的工具,它是确定 Python 字符串是否包含字符的最快、最简单的方法。使用 find()、index()、count() 等其他 Python 函数也有助于检查字符串是否包含子字符串。

使用 Python 的“in”运算符

Python 的“in”运算符是确定字符串是否包含子字符串的最快、最简单的方法。如果字符串包含这些字符,此操作将返回布尔值 True;否则,它将返回 False。

代码

输出

The string 'tut' is present in the string:  True

如果作为左参数给定的字符串包含在作为右参数给定的字符串中,“in”运算符将返回 True。它接受两个参数,分别位于“in”运算符的两侧。Python 的“in”运算符区分大小写,因此它将大写和小写字母视为不同的字符。

使用 __contains__() 函数

Python 字符串类的 __contains__() 函数也提供了一种确定给定字符串是否包含子字符串的方法。当 Python 的“in”操作隐式使用时,它会调用 __contains__() 方法。当类对象出现在“in”和“not in”运算符的右侧时,行为由 __contains__ 方法定义。尽管我们可以显式使用此方法,但通常不建议这样做。虽然以单下划线开头的函数被视为语义私有,但为了提高可读性,建议使用“in”运算符。

代码

输出

The string 'tut' is present in the string:  True

使用 Python 的 str.find() 方法

您还可以使用 string.find() 方法。find() 函数用于确定子字符串是否存在于给定字符串中。如果找到子字符串,find() 函数将返回 -1;否则,它将返回子字符串在字符串中的起始索引。

代码

输出

The character 'T' is present in the string at:  7

这种方法是可行的,但使用 str.find() 完成此任务的方式不够 Pythonic。尽管它更冗长且略显混乱,但它仍然可以完成任务。

使用 str.count() 方法

如果要计算特定子字符串在字符串中出现的次数,请使用 Python 的 count() 函数。如果函数在给定字符串中找不到子字符串或字符,它将返回 0。

代码

输出

The character 'o' is present in the string 2 times.