Python教程:如何高效检查字符串是否包含子字符串

字符串操作是任何编程语言中常见的任务。Python提供了两种常见的方法来检查一个字符串是否包含另一个字符串。

Python检查字符串是否包含另一个字符串

Python字符串支持in运算符。因此,我们可以使用它来检查一个字符串是否是另一个字符串的一部分。in运算符的语法如下:

sub in str

如果”sub”字符串是”str”的一部分,则返回True,否则返回False。让我们看一些在Python中使用in运算符的例子。

str1 = '我喜欢Python编程'

str2 = 'Python'

str3 = 'Java'

print(f'"{str1}" 包含 "{str2}" = {str2 in str1}')
print(f'"{str1}" 包含 "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" 包含 "{str3}" = {str3 in str1}')

if str2 in str1:
    print(f'"{str1}" 包含 "{str2}"')
else:
    print(f'"{str1}" 不包含 "{str2}"')

输出:

"我喜欢Python编程" 包含 "Python" = True
"我喜欢Python编程" 包含 "python" = False
"我喜欢Python编程" 包含 "Java" = False
"我喜欢Python编程" 包含 "Python"
使用in运算符检查Python字符串是否包含另一个字符串

如果你不熟悉Python中的f前缀字符串,这是Python 3.6引入的一种新的字符串格式化方式。你可以在Python的f字符串中了解更多相关信息。

当我们使用in运算符时,它在内部调用了__contains__()函数。我们也可以直接使用这个函数,但出于可读性的考虑,建议使用in运算符。

s = 'abc'

print('s 包含 a =', s.__contains__('a'))
print('s 包含 A =', s.__contains__('A'))
print('s 包含 X =', s.__contains__('X'))

输出:

s 包含 a = True
s 包含 A = False
s 包含 X = False

使用find()函数来检查一个字符串是否包含另一个子字符串。

我们还可以使用字符串的find()函数来检查字符串是否包含子字符串。该函数返回子字符串第一次出现的索引位置,如果没有找到则返回-1。

str1 = '我喜欢Python编程'

str2 = 'Python'

str3 = 'Java'

index = str1.find(str2)
if index != -1:
    print(f'"{str1}" 包含 "{str2}"')
else:
    print(f'"{str1}" 不包含 "{str2}"')

index = str1.find(str3)
if index != -1:
    print(f'"{str1}" 包含 "{str3}"')
else:
    print(f'"{str1}" 不包含 "{str3}"')

输出:

"我喜欢Python编程" 包含 "Python"
"我喜欢Python编程" 不包含 "Java"
Python检查字符串是否包含子字符串

您可以从我们的GitHub代码仓库中检查完整的Python脚本和更多Python示例。

bannerAds