Python のリストで文字列を検索する

Manav Narula 2023年1月30日
  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" (この例では "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 で 1 行の 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']
著者: 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