首頁 > 後端開發 > Python教學 > 如何使用Python篩選以給定前綴開頭的列表元素?

如何使用Python篩選以給定前綴開頭的列表元素?

WBOY
發布: 2023-08-20 11:29:40
轉載
1811 人瀏覽過

如何使用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()的方法的列表推導來過濾列表中的前綴元素。

Example

的中文翻譯為:

範例

在下面的範例中,我們將在名為prefix_list_element_filter()的函數的返回語句中使用列表推導式,該函數將使用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()的內建方法來儲存過濾的前綴元素。

Example

的中文翻譯為:

範例

在以下範例中,我們首先透過使用def關鍵字定義函數來啟動程序,該函數接受兩個參數- lst(用於接收清單值)和prefix (用於接收前綴關鍵字)。接下來,它將使用for迴圈迭代列表,然後使用 startswith() 方法設定前綴,該方法接受函數接收到的參數前綴值。然後使用名為 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()的方法來設定前綴,該方法可以用於過濾特定的前綴。

Example

的中文翻譯為:

範例

在以下範例中,使用以def關鍵字開始的函數,該函數接受兩個參數-lst(接收清單值)和prefix(接收特定的關鍵字搜尋),函數將根據是否以給定前綴開頭來過濾項目清單。函數使用一些內建函數(如list()filter()lambdastartswith())傳回帶有前綴的結果。然後建立一個列表來儲存變數course_list中的字串值。接下來,使用函數呼叫來傳遞值-在變數filter_list中傳遞course_list“bc”。現在使用設定變數名為filter_list的print函數來取得結果。

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']
登入後複製

使用帶有條件表達式的列表推導

程式使用一個函數,透過設定一些條件表達式來傳回列表壓縮,這些條件表達式可以用來過濾以給定前綴開頭的列表元素。

Example

的中文翻譯為:

範例

在下面的範例中,開始使用函數filter_list_elements_prefix(),它接受兩個參數- lst(儲存清單)和prefix(在函數呼叫期間接收特定前綴)。此函數透過使用列表推導式傳回新列表,即表達式 item[:len(prefix)] 對 lst 中的每個項目從開頭到前綴的長度進行切片,並將其與前綴進行比較。如果它們相等,則將該項目包含在新清單中。接下來,建立一個清單以在變數 my_list 中儲存一些字串值。然後初始化變數 filter_list,它與上述函數具有相同的名稱,以傳遞列表和前綴的值。最後,使用變數 filter_list 在 print 函數中取得結果。

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(),可以用于过滤前缀并根据给定条件返回结果。这个程序涉及到现实生活中的例子,比如一个由多个人名组成的名单,可以通过特定的前缀进行搜索。

以上是如何使用Python篩選以給定前綴開頭的列表元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板