ウェブサイト検索

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()

これは、文字列が特定の値で始まる場合に、指定された条件が満たされる場合に true を返す Python の組み込みメソッドです。

filter()

filter() メソッドは、特定の条件に基づいて項目をフィルタリングする必要がある場合に適用されます。簡単に言うと、ユーザーは条件を満たすように抽出された要素を反復できるようになります。

lambda

Python のこのラムダ関数は、匿名関数として知られています。関数オブジェクトが必要な場合に使用できます。

len()

これは、オブジェクト内に存在する項目の長さを返す Python の組み込みメソッドです。

リスト内包表記の使用

このプログラムは、リストからプレフィックス要素をフィルタリングするために使用できる startswith() という名前のメソッドを利用してリスト内包表記を使用します。

次の例では、prefix_list_element_filter() という名前の関数の return ステートメントでリスト内包表記を使用します。この関数は、for ループを使用してリスト値を反復し、startswith()< を使用してプレフィックスをチェックします。。 for ループと if ステートメントを 1 か所でまとめることをリスト内包表記と呼びます。次に、変数 my_list にリストを作成します。次に、パラメータ my_list (リスト値を保存する) と Am ( prefix ) を渡す呼び出し関数を設定して、指定されたリスト要素の開始要素のフィルタリングを実行します。接頭語。最後に、変数 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() という名前の組み込みメソッドを使用して、フィルター プレフィックス要素を格納する空のリストを使用します。

次の例では、最初に 2 つのパラメータ lst (リスト値を受け取るため) と prefix (リスト値を受け取るため) を受け入れる def キーワードを使用して関数を定義してプログラムを開始します。プレフィックスキーワード)。次に、for ループを使用してリストを反復処理し、パラメータ prefix(関数から受け取った値) を受け入れる startswith() を使用してプレフィックスを設定します。次に、フィルタ リスト要素を変数 filtered_list に追加し、結果を取得するために戻る append() という名前のメソッドを使用します。次に、変数 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() を使用して特定のプレフィックスを識別し、ラムダを使用して、特定のプレフィックスをフィルターするために使用できる startwith() という名前のメソッドを使用してプレフィックスを設定します。

次の例では、2 つのパラメータ lst (リスト値を受け取るため) と prefix (特定のキーワード検索を受け取るため) を受け入れる def キーワードを使用して関数の使用を開始します。これは、項目が指定されたプレフィックスで始まるかどうかに基づいて項目のリストをフィルター処理します。この関数は、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']

条件式でのリスト内包表記の使用

このプログラムは、指定されたプレフィックスで始まるリスト要素をフィルター処理するために使用できる条件式を設定することにより、リストの圧縮を返す関数を使用します。

次の例では、関数 filter_list_elements_prefix() の使用を開始します。この関数は 2 つのパラメータ、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() などの組み込み関数がいくつかあります。このプログラムは、特定の接頭語で検索される複数の人の名前リストなどの実際の例を関連付けます。

関連記事: