如何使用 Python 检查子字符串是否为字符串列表的一部分?
通常,字符串是一种不可变的数据结构,用于在单引号或双引号内以字符串格式存储数据。它是不可变的,这意味着一旦创建了字符串,字符串中的数据就无法更改,但可以对字符串执行各种操作来操作数据。
子字符串是较长字符串中连续的字符序列。它是字符串的一个较小部分,可以在原始字符串中提取或搜索。例如,让我们将字符串“Hello, World!”视为原始字符串,“Hello”、“World”和“!”都是原始字符串的子字符串。
在 Python 中,我们有不同的方法来检查子字符串是否为字符串列表的一部分。让我们详细了解每种方法。
使用循环
此方法涉及遍历列表中的每个字符串,并检查子字符串是否出现在每个字符串中。
示例
在此示例中,我们使用 for 循环遍历列表中的每个字符串。对于每个字符串,我们使用 in 运算符检查子字符串是否存在。如果我们找到匹配项,则返回 True,表示子字符串至少在一个字符串中存在。如果在任何字符串中都找不到匹配项,则返回 False。
def is_substring_present_loop(substring, string_list): for string in string_list: if substring in string: return True return False res = is_substring_present_loop("Happy", ["Happy","learning"]) print(res)
输出
True
使用列表推导式
列表推导式方法允许我们创建一个新的列表,其中包含布尔值,指示子字符串是否出现在每个字符串中。然后,我们可以使用 any() 函数检查任何布尔值是否为 True。
示例
在此示例中,我们使用列表推导式创建一个名为 match_list 的新列表。match_list 中的每个元素都表示子字符串是否出现在相应的字符串中。最后,我们使用 any() 函数检查 match_list 中的任何元素是否为 True,即我们返回 True,否则返回 False。
def is_substring_present_listcomp(substring, string_list): match_list = [substring in string for string in string_list] return any(match_list) res = is_substring_present_listcomp("Happy", ["Happy","learning"]) print(res)
输出
True
使用 any() 函数和生成器表达式
此方法类似于列表推导式方法,但它不是创建单独的列表,而是直接在 any() 函数中使用生成器表达式。
示例
在此示例中,我们使用生成器表达式 (substring in string for string in string_list),它生成一系列布尔值,指示子字符串是否出现在每个字符串中。any() 函数检查这些布尔值中的任何一个是否为 True。如果是,则返回 True,否则返回 False。
def is_substring_present_any(substring, string_list): return any(substring in string for string in string_list) res = is_substring_present_any("Tutorialspoint", ["Happy","learning"]) print(res)
输出
False