Python – 特定の文字を含む文字列を持つタプルをフィルタリングする方法
特定の文字を含む文字列を持つタプルだけを抽出したい場合、リスト内包表記と all 演算子を組み合わせることで、簡潔かつ効率的にフィルタリングを行うことができます。
サンプルコード
以下に具体的な実装例を示します。
my_list = [('pyt', 'best'), ('pyt', 'good'), ('fest', 'pyt')]
print("The list is :")
print(my_list)
char_string = 'pyestb'
my_result = [index for index in my_list if all(all(sub in char_string for sub in element) for element in index)]
print("The result is : ")
print(my_result)出力結果
The list is :
[('pyt', 'best'), ('pyt', 'good'), ('fest', 'pyt')]
The result is :
[('pyt', 'best')]処理の解説
まず、複数の文字列からなるタプルを要素とするリストを定義し、コンソールに表示します。
次に、フィルタリングの基準となる文字列(この例では
'pyestb')を定義します。リスト内包表記を使ってリストの各タプルを走査し、ネストされた
all()関数によって、各タプル内のすべての文字列が基準の文字列に含まれる文字だけで構成されているかどうかを判定します。つまり、タプル内の各文字列のすべての文字がchar_stringに存在する場合のみ、そのタプルが結果に残ります。フィルタリングされた結果はリストとして生成され、変数
my_resultに代入されます。最後に、その結果をコンソールに出力します。
ポイントまとめ
この手法の核となるのは、二重の all() の構造です。外側の all() はタプル内の各要素(文字列)をチェックし、内側の all() は各文字列を構成する個々の文字が基準文字列に含まれているかを確認します。これにより、「指定した文字以外を含むタプル」を一括して除外できるため、文字セットによるフィルタリング処理をわずか一行のコードで実現できます。
-
Pythonでタプルのリストを文字列のリストに変換する方法
Pythonでデータ処理を行っていると、要素がタプルになっているリストを扱う場面に遭遇することがあります。さらに、そのタプルを文字列へ変換し、文字列のリストとして取得したいケースも少なくありません。本記事では、タプルのリストを文字列のリストに変換する2つの代表的な方法を、具体的なコード例とともに解説します。方法1:join()とリスト内包表記を使う文字列のjoin()メソッドは、シーケンス(ここではタプル)の各要素を指定した区切り文字で連結し、1つの文字列として返します。区切り文字に空文字列を指定すれば、タプル内の要素をそのまま連結できます。リスト内包表記を使えば、リスト内のすべてのタプルに対
-
Pythonで文字列のリストをタプルのリストに変換する方法
Pythonでデータを操作していると、数値が文字列として格納されたリストに出会うことがあります。例えば「21, 3」のような文字列を、(21, 3) のようなタプルへ変換したいケースです。本記事では、カンマ区切りの数値形式で与えられた文字列のリストを、タプルのリストへ変換する2つの方法を解説します。 map関数とevalを使う方法 map関数を使って、リストの各要素にevalを適用する方法です。evalは文字列をPythonの式として評価するため、「21, 3」という文字列が自動的にタプル (21, 3) として解釈されます。最後にlist関数で結果をリストとして格納します。 サンプルコード