如何使用 Python 過濾以給定字首開頭的列表元素?
字首一詞由單詞或字母的開頭定義。在本文中,我們將學習如何使用 Python 內建函式,如 startswith()、filter()、lambda 和 len(),來使用 Python 過濾以給定字首開頭的列表元素。
讓我們舉個例子來理解這一點 -
Let’s take an example to understand this: Given element list, My_list = [“Amelia”, “Kinshuk”, “Rosy”, “Aman”] Keyword to be searched, Prefix = “Am” Final result = [“Amelia”, “Aman”]
語法
以下語法用於所有示例 -
startswith()
這是 Python 中的一個內建方法,如果字串以特定值開頭,則在滿足給定條件時返回 true。
filter()
當我們需要根據特定條件過濾專案時,會應用 filter() 方法。簡單來說,它允許使用者迭代那些被提取以滿足條件的元素。
lambda
Python 中的這個 lambda 函式被稱為匿名函式。當需要函式物件時可以使用它。
len()
這是 Python 中的一個內建方法,它返回物件中存在的專案的長度。
使用列表推導式
該程式使用列表推導式,藉助名為 startswith() 的方法,該方法可用於從列表中過濾字首元素。
示例
在下面的示例中,我們將使用列表推導式在名為 prefix_list_element_filter() 的函式的 return 語句中,該函式將使用 for 迴圈迭代列表值,並使用 startswith() 檢查字首。for 迴圈和 if 語句在一個地方的組合稱為列表推導式。然後在變數 my_list 中建立列表。繼續設定呼叫函式,該函式傳遞引數 - my_list(儲存列表值)和 Am(字首)以處理以給定字首開頭的列表元素的過濾。最後,我們使用變數 filter_list 列印結果。
def prefix_list_element_filter(lst, prefix): return [item for item in lst if item.startswith(prefix)] # Create the list my_list = ["Amar", "Bunny", "Aman", "Ganesh", "Rajendra"] filter_list = prefix_list_element_filter(my_list, "Am") print("The given element start with prefix:", filter_list)
輸出
The given element start with prefix: ['Amar', 'Aman']
使用 for 迴圈
該程式使用 for 迴圈迭代給定的列表,並使用 startswith() 檢查字首。然後它將使用一個空列表,該列表透過使用名為 append() 的內建方法儲存過濾後的字首元素。
示例
在下面的示例中,我們將首先使用 def 關鍵字定義函式來啟動程式,該函式接受兩個引數 - lst(接收列表值)和 prefix(接收字首關鍵字)。接下來,它將使用 for 迴圈迭代列表,然後使用 startswith() 設定字首,該字首接受引數 prefix(從函式接收的值)。然後使用名為 append() 的方法,該方法將過濾後的列表元素新增到變數 filtered_list 中並返回以獲取結果。現在在變數 fruit_list 中建立列表。然後使用呼叫函式將列表值和字首的引數傳遞到變數 filter_list 中。最後,使用名為 filter_list 的變數列印結果。
def prefix_list_element_filter(lst, prefix): filtered_list = [] for item in lst: if item.startswith(prefix): filtered_list.append(item) return filtered_list # Create the list fruit_list = ["apple", "banana", "avocado", "blue berry", "kiwi"] filter_list = prefix_list_element_filter(fruit_list, "b") print("The given element start with prefix:\n", filter_list)
輸出
The given element start with prefix: ['banana', 'blue berry']
使用 Filter() 函式
該程式使用 filter() 來識別特定的字首,並使用 lambda 來使用名為 startswith() 的方法設定字首,該方法可用於過濾特定的字首。
示例
在下面的示例中,使用 def 關鍵字開始使用函式,該函式接受兩個引數 - lst(接收列表值)和 prefix(接收特定的關鍵字搜尋),該函式將根據專案是否以給定字首開頭來過濾專案列表。此函式透過使用一些內建函式(如 list()、filter()、lambda 和 startswith())返回帶有字首的結果。然後建立列表以在變數 course_list 中儲存字串值。接下來,使用函式呼叫將值 - course_list 和 “bc” 傳遞到變數 filter_list 中。現在使用 print 函式設定名為 filter_list 的變數以獲取結果。
def prefix_list_element_filter(lst, prefix): return list(filter(lambda item: item.startswith(prefix), lst)) # Create the list course_list = ["dca", "bca", "bcom", "MCA", "pgdca"] filter_list = prefix_list_element_filter(course_list, "bc") print("The given element start with prefix:\n", filter_list)
輸出
The given element start with prefix: ['bca', 'bcom']
使用帶條件表示式的列表推導式
該程式使用一個函式,該函式返回列表推導式,並設定一些條件表示式,該表示式可用於過濾以給定字首開頭的列表元素。
示例
在下面的示例中,開始使用函式 filter_list_elements_prefix(),該函式接受兩個引數 - lst(儲存列表)和 prefix(在函式呼叫期間接收特定的字首)。此函式透過使用列表推導式返回新列表,即表示式 item[:len(prefix)] 獲取 lst 中每個專案的從開頭到字首長度的切片,並將其與字首進行比較。如果它們相等,則該專案將包含在新列表中。接下來,建立列表以在變數 my_list 中儲存一些字串值。然後初始化變數 filter_list,該變數儲存與函式(上面提到的)相同的名稱,以傳遞列表和字首的值。最後,在 print 函式中使用變數 filter_list 以獲取結果。
def filter_list_elements_prefix(lst, prefix): return [item for item in lst if item[:len(prefix)] == prefix] # Create the list my_list = ["tea", "coffee", "cheese", "teaspoon", "sugar"] filter_list = filter_list_elements_prefix(my_list, "tea") print("The given element start with prefix:\n", filter_list)
輸出
The given element start with prefix: ['tea', 'teaspoon']
結論
我們討論了各種解決問題陳述的方法,這些方法可以過濾以給定字首開頭的元素。有一些內建函式,如 startswith()、append() 和 len(),可用於過濾字首並根據給定條件返回結果。此程式涉及現實生活中的示例,例如多個人的姓名列表,可以透過特定字首進行搜尋。