目录
Check if multiple strings exist in another string in Python
检查多个字符串中的一个是否存在于另一个字符串中
使用该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()
函数将返回,否则返回。True
False
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
。
我还写了一篇关于
如何检查字典中是否存在多个键的文章。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: