Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python:リストのリストからアルファベットのみを含む行をフィルタリングする方法

リストのリスト(ネストされたリスト)の中から、アルファベットのみで構成された行だけを抽出したいケースがあります。そのような場合は、リストを反復処理しながら、文字列の isalpha() メソッドを使って各要素がアルファベットのみかどうかを判定します。すべての要素が判定を満たす行だけを新しいリストとして取り出すことで、簡単にフィルタリングが実現できます。

サンプルコード

以下に具体的な実装例を示します。

my_list = [["python", "is", "best"], ["abc123", "good"],["abc def ghij"], ["abc2", "gpqr"]]

print("The list is :")
print(my_list)
my_result = [sub for sub in my_list if all(element.isalpha() for element in sub)]

print("The result is :")
print(my_result)

出力結果

The list is :
[['python', 'is', 'best'], ['abc123', 'good'], ['abc def ghij'], ['abc2', 'gpqr']]
The result is :
[['python', 'is', 'best']]

処理の流れと解説

  • まず、文字列の値を複数含むリストのリストを定義します。ここには純粋なアルファベットの要素だけでなく、数字や空白を含む要素も混在しています。

  • 定義した元のリストをコンソールに表示し、内容を確認できるようにします。

  • リスト内包表記を使って各行(サブリスト)を反復処理します。

  • 各行に対して all() 関数と isalpha() メソッドを組み合わせ、その行のすべての要素がアルファベットのみで構成されているかをチェックします。isalpha() は数字や空白・記号が1つでも含まれていると False を返すため、「abc123」や「abc def ghij」のような要素は自動的に除外されます。

  • 条件を満たした行だけが新しいリストとして変数 my_result に代入されます。

  • 最後に、フィルタリング後の結果をコンソールに出力して完了です。

このように、isalpha()all() をリスト内包表記で組み合わせれば、わずか1行のコードで「アルファベットのみの行」を効率的に抽出できます。条件を変えれば、数字のみの行や特定のパターンを含む行のフィルタリングにも応用可能です。

  1. Pythonでリストから偶数だけを抽出する方法(forループ・whileループ・filter()の使い方)

    データ分析では、特定の条件を満たす値だけをリストから抽出(フィルタリング)する処理が必要になることがよくあります。本記事では、Pythonを使ってリストから偶数の値のみを取り出す方法を、複数のアプローチごとにわかりやすく解説します。基本的な考え方はシンプルです。リストの各要素を順番に取り出し、2で割った余りを確認します。余りが0であればその要素は偶数と判断できます。こうして判定した偶数だけを集めて新しいリストを作成すれば、それがフィルタリング条件を適用した結果となります。それでは、代表的な3つの実装方法を見ていきましょう。1. forループを使う方法最もシンプルで直感的なのが、forループを使

  2. Pythonリスト入門:作成から操作、削除まで徹底解説

    このチュートリアルでは、Pythonのリスト(List)について学びます。リストの作成方法、要素へのアクセス、要素の追加・削除、リスト自体の削除など、基本的な操作を一つずつ丁寧に解説していきます。 Pythonでは、リストは角括弧 [] を使って構築し、各要素はカンマ , で区切って記述します。 Pythonのリストは、異なる型のオブジェクトを混在させて格納できるのが特徴です。すべて文字列である必要も、整数である必要もありません。例えば、以下のように複数の型が混ざったリストを作成できます。mixedTypesList = [a, True, 1, 1.0] リストの作成方法 リストは、角括弧