Python のリストで文字列を検索する
-
Python で特定の部分文字列を含むリストから要素を見つけるために
for
ループを使用する -
filter()
関数を用いて 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 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