Pythonでタプルのリストから指定した桁数の要素を抽出する方法
タプルのリストの中から、特定の桁数を持つ要素だけを抽出したいケースは意外と多くあります。そんなときは、リスト内包表記を使うことで、簡潔かつ効率的に処理を実装できます。
以下に具体的な実装例を示します。
サンプルコード
my_list = [(67, 2), (34, 65), (212, 23), (17, 67), (18, )]
print("The list is : ")
print(my_list)
N = 2
print("The value of N is ")
print(N)
my_result = [sub for sub in my_list if all(len(str(ele)) == N for ele in sub)]
print("The extracted tuples are : " )
print(my_result)
実行結果
The list is : [(67, 2), (34, 65), (212, 23), (17, 67), (18,)] The value of N is 2 The extracted tuples are : [(34, 65), (17, 67), (18,)]
コードの解説
まず、複数のタプルを含むリストmy_listを定義し、その内容をコンソールに表示します。
抽出条件となる桁数として、変数Nに「2」を設定します。この値もコンソールに出力されます。
リスト内包表記を使ってリストを順番に走査します。各タプルに対して、str()関数で要素を文字列に変換し、len()でその長さ(=桁数)を取得します。
all()関数により、タプル内のすべての要素がN桁である場合にのみTrueが返されます。一部の要素だけが条件を満たすタプルは除外される点に注意してください。
条件を満たしたタプルだけが新しいリストmy_resultに格納され、最終的にコンソールへ出力されます。
このように、リスト内包表記とall()関数を組み合わせれば、フィルタリング処理をわずか1行で記述できます。例えば3桁の要素を抽出したい場合は、N = 3に変更するだけで対応可能です。データクレンジングや前処理など、さまざまな場面で応用できるテクニックなので、ぜひ覚えておきましょう。
-
Pythonで文字列リストから数値を抽出する2つの方法:splitとmap/isnumericの使い方
Pythonでデータ処理を行っていると、文字と数字が混在し、かつ一定のパターンを持つリストに遭遇することがあります。例えば「曜日-数値」のように、識別子と数値が組み合わされたデータは実務でもよく見られます。 本記事では、このようなリストから数値部分だけを抽出し、その後の計算や集計に利用できるようにする方法を、2つのアプローチで解説します。 方法1:split関数を使う split() 関数は、指定した区切り文字を基準に文字列を分割します。以下の例では、リストの各要素がハイフン(-)によって文字部分と数値部分に区切られています。この特徴を利用し、リスト内包表記で各要素を処理することで、数値部分を
-
Pythonでリストから重複する要素を抽出して表示する方法
この記事では、数値のリストの中から重複している要素(2回以上出現する、リスト内で一意ではない要素)をすべて抽出して表示するPythonプログラムを解説します。実行例入力: given_list = [3, 6, 9, 12, 3, 30, 15, 9, 45, 36, 12] 出力: desired_output = [3, 9, 12] 入力: given_list = [-27, 4, 29, -27, -2, -99, 123, 499, -99] 出力: desired_output = [-27, -99]負の数値が含まれる場合でも正しく動作することがわかります。重複要素を検出する