在 Python 中检查另一个字符串中是否存在多个字符串

目录

Check if multiple strings exist in another string in Python

  1. 检查多个字符串中的一个是否存在于另一个字符串中
  2. 检查所有多个字符串是否存在于另一个字符串中

检查多个字符串中的一个是否存在于另一个字符串中

使用该any()函数检查另一个字符串中是否存在多个字符串。

如果字符串中至少存在多个字符串之一,则any()函数将返回。True

主程序
my_str = 'apple, egg, avocado' list_of_strings = ['apple', 'banana', 'kiwi'] if any(substring in my_str for substring in list_of_strings): # 👇️ this runs print('At least one of the multiple strings exists in the string') else: print('None of the multiple strings exist in the string')

如果您需要检查另一个字符串中是否存在所有多个字符串,请单击以下子标题。

我们使用生成器表达式来迭代字符串集合。

生成器表达式用于对每个元素执行某些操作或选择满足条件的元素子集。

在示例中,我们遍历字符串集合并检查每个字符串是否包含在另一个字符串中。

any函数接受一个可迭代对象作为参数,如果可迭代对象中的任何元素为真则返回。True

如果至少一个字符串包含在另一个字符串中,any()函数将短路返回。True

获取字符串中包含的子字符串


如果需要获取字符串中包含的值,
可以使用
赋值表达式语法。

主程序
my_str = 'apple, egg, avocado' list_of_strings = ['apple', 'banana', 'kiwi'] if any((match := substring) in my_str for substring in list_of_strings): # 👇️ this runs print('At least one of the multiple strings exists in the string') print(match) # 👉️ 'apple' else: print('None of the multiple strings exist in the string')
赋值表达式允许我们使用语法给表达式中的变量赋值NAME := expression

如果我们传递给函数any()的可迭代对象为空,或者可迭代对象中的元素都不为真,则any函数返回False

获取字符串中包含的一个或多个子串

filter()如果您需要获取字符串中包含的一个或多个子字符串,请使用该方法。

主程序
my_str = 'apple, egg, kiwi' list_of_strings = ['one', 'two', 'apple', 'egg'] matches = list(filter(lambda x: x in my_str, list_of_strings)) print(matches) # 👉️ ['apple', 'egg']

filter函数接受一个函数和一个可迭代对象作为参数并从可迭代对象的元素构造一个迭代器,函数返回一个真值。

我们传递给的 lambda 函数会filter使用列表中的每个子字符串进行调用。

新列表仅包含字符串中包含的子字符串。

for使用循环检查多个字符串中的一个是否存在于另一个字符串中

您还可以使用for 循环来检查多个字符串中的一个是否存在于另一个字符串中。

主程序
my_str = 'apple, egg, avocado' list_of_strings = ['apple', 'banana', 'kiwi'] one_exists = False for substring in list_of_strings: if substring in my_str: one_exists = True break print(one_exists) # 👉️ True if one_exists: # 👇️ this runs print('At least one of the substrings is contained in the string') else: print('None of the substrings are contained in the string')

我们将one_exists变量初始化为False并使用for循环遍历字符串列表。

在每次迭代中,我们检查当前子字符串是否包含在字符串中。

如果满足条件,我们将one_exists变量设置为True并退出
for循环。

以不区分大小写的方式检查

如果您需要以不区分大小写的方式检查多个字符串中的一个是否存在于另一个字符串中,请将两个字符串都转换为小写。

主程序
my_str = 'APPLE, EGG, AVOCADO' list_of_strings = ['apple', 'banana', 'kiwi'] if any(substring.lower() in my_str.lower() for substring in list_of_strings): # 👇️ this runs print('At least one of the multiple strings exists in the string') # print(match) # 👉️ 'apple' else: print('None of the multiple strings exist in the string')

str.lower()在检查字符串中是否包含每个子字符串之前,我们使用该方法将每个子字符串和字符串转换为小写。

str.lower方法返回字符串的副本,其中所有大小写字符都转换为小写

检查所有多个字符串是否存在于另一个字符串中

使用该all()函数检查另一个字符串中是否存在多个字符串。

如果字符串中存在所有子字符串,则all()函数将返回,否则返回。TrueFalse

主程序
my_str = 'apple, egg, kiwi' list_of_strings = ['apple', 'egg', 'kiwi'] # ✅ check if ALL of multiple strings exist in another string if all(substring in my_str for substring in list_of_strings): # 👇️ this runs print('All of the substrings exist in the string') else: print('Not all of the substrings exist in the string')

我们使用生成器表达式来迭代字符串集合。

all ()内置函数接受一个可迭代对象作为参数,True如果可迭代对象中的所有元素都为真(或可迭代对象为空)则返回。

如果集合中的任何一个字符串不包含在另一个字符串中,该all()函数将短路返回False

for使用循环检查另一个字符串中是否存在所有多个字符串

您还可以使用for循环来检查字符串中是否存在所有多个子字符串。

主程序
my_str = 'apple, egg, kiwi' list_of_strings = ['apple', 'egg', 'kiwi'] all_exist = True for substring in list_of_strings: if not substring in my_str: all_exist = False break print(all_exist) # 👉️ True if all_exist: # 👇️ this runs print('All of the substrings exist in the string') else: print('Not all of the substrings exist in the string')

我们将all_exist变量初始化为True并使用for循环遍历字符串列表。

在每次迭代中,我们检查当前子字符串是否不包含在字符串中。

如果满足条件,我们将all_exist变量设置为False并退出
for循环。

break语句跳出最内层的封闭for循环while

我还写了一篇关于
如何检查字典中是否存在多个键的文章。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: