如何使用 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