在 Python 中查詢列表中的字串

Manav Narula 2023年1月30日 2021年2月7日
  1. 在 Python 中使用 for 迴圈從列表中查詢包含特定子字串的元素
  2. 使用 filter() 函式從 Python 列表中查詢包含特定子字串的元素
  3. 使用正規表示式從 Python 列表中查詢包含特定子字串的元素
在 Python 中查詢列表中的字串

本教程將介紹如何從一個 Python 列表中查詢其中有特定子字串的元素。

我們將使用下面的列表並提取其中有 ack 的字串。

my_list = ['Jack', 'Mack', 'Jay', 'Mark']

在 Python 中使用 for 迴圈從列表中查詢包含特定子字串的元素

在這個方法中,我們遍歷列表並檢查子字串是否存在於某個元素中。如果子字串存在於該元素中,那麼我們就將其儲存在字串中。下面的程式碼顯示瞭如何操作。

str_match = [s for s in my_list if "ack" in s]
print(str_match)

輸出:

['Jack', 'Mack']

in 關鍵字檢查給定的字串,即本例中的"ack",是否存在於字串中。也可以用 __contains__ 方法代替,它是字串類的一個神奇方法。例如:

str_match = [s for s in my_list if s.__contains__("ack")]
print(str_match)

輸出:

['Jack', 'Mack']

使用 filter() 函式從 Python 列表中查詢包含特定子字串的元素

filter() 函式借助函式從給定物件中檢索資料的子集。該方法將使用 lambda 關鍵字來定義過濾資料的條件。lambda 關鍵字在 Python 中建立了一個單行的 lambda 函式。請看下面的程式碼片段。

str_match = list(filter(lambda x: 'ack' in x, my_list))
print(str_match)

輸出:

['Jack', 'Mack']

使用正規表示式從 Python 列表中查詢包含特定子字串的元素

正規表示式是一個字元序列,可以作為匹配模式來搜尋元素。要使用正規表示式,我們必須匯入 re 模組。在這個方法中,我們將使用 for 迴圈和 re.search() 方法,該方法用於返回與特定模式匹配的元素。下面的程式碼將解釋如何操作。

import re
pattern=re.compile(r'ack') 
str_match = [x for x in my_list if re.search('ack', x)]
print(str_match)

輸出:

['Jack', 'Mack']
Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python List