【Python】リストの要素を部分一致で検索する方法

この記事では、Pythonのリスト内の要素を部分一致で検索する方法について解説します。

forループ、filter関数、リスト内包表記、reモジュールを使用する方法を紹介します。

これらの方法を使うことで、効率的にリスト内の要素を検索することができます。

目次から探す

リストの要素を部分一致で検索する方法

リストはPythonプログラミングで非常に便利なデータ構造です。

リスト内の要素を検索する方法はいくつかありますが、今回はリストの要素を部分一致で検索する方法について解説します。

forループを使用した方法

forループを使用することで、リスト内の要素を一つずつ取り出し、部分一致するかどうかを判定することができます。

以下はその方法の例です。

def search_list_partial_match(lst, keyword):
    result = []
    for item in lst:
        if keyword in item:
            result.append(item)
    return result

# 使用例
my_list = ["apple", "banana", "orange", "grape"]
keyword = "an"
result = search_list_partial_match(my_list, keyword)
print(result)  # 出力: ["banana", "orange"]

filter関数を使用した方法

filter関数を使用することで、リスト内の要素をフィルタリングすることができます。

以下はその方法の例です。

def search_list_partial_match(lst, keyword):
    result = list(filter(lambda x: keyword in x, lst))
    return result

# 使用例
my_list = ["apple", "banana", "orange", "grape"]
keyword = "an"
result = search_list_partial_match(my_list, keyword)
print(result)  # 出力: ["banana", "orange"]

リスト内包表記を使用した方法

リスト内包表記を使用することで、簡潔にリスト内の要素を部分一致で検索することができます。

以下はその方法の例です。

def search_list_partial_match(lst, keyword):
    result = [item for item in lst if keyword in item]
    return result

# 使用例
my_list = ["apple", "banana", "orange", "grape"]
keyword = "an"
result = search_list_partial_match(my_list, keyword)
print(result)  # 出力: ["banana", "orange"]

reモジュールを使用した方法

reモジュールは正規表現を扱うためのモジュールであり、リスト内の要素を正規表現を用いて部分一致で検索することができます。

以下はその方法の例です。

import re

def search_list_partial_match(lst, keyword):
    pattern = re.compile(keyword)
    result = [item for item in lst if re.search(pattern, item)]
    return result

# 使用例
my_list = ["apple", "banana", "orange", "grape"]
keyword = "an"
result = search_list_partial_match(my_list, keyword)
print(result)  # 出力: ["banana", "orange"]

以上がリストの要素を部分一致で検索する方法のいくつかです。

それぞれの方法を使いこなして、効率的なプログラミングを行いましょう。

部分一致の検索には、文字列のin演算子や正規表現を使用することが一般的です。

また、リスト内包表記はコードを短く記述するための便利な方法ですが、1行のコード量が多くなりがちなため、可読性に注意しながら使用しましょう。

目次から探す