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

Pythonでリストの要素に基づいてタプルをフィルタリングする方法

リスト内に存在する要素に基づいてタプルをフィルタリングしたい場合、リスト内包表記を使うと簡潔に実現できます。

Pythonのリストは、整数・浮動小数点数・文字列など、さまざまなデータ型の値(異種の値)をひとつのリストに格納できる柔軟なデータ構造です。

「タプルのリスト」とは、リストの中に複数のタプルが格納された構造のことを指します。リスト内包表記は、リストを反復処理しながら操作を行うための省略記法であり、可読性の高いコードを短く書くことができます。

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

サンプルコード

my_list = [(11, 14), (54, 56, 87), (98, 0, 10), (13, 76)]
target_list = [34, 11]

print("The list is : ")
print(my_list)

my_result = [tup for tup in my_list if any(i in tup for i in target_list)]

print("The filtered tuple from the list is: ")
print(my_result)

出力結果

The list is :
[(11, 14), (54, 56, 87), (98, 0, 10), (13, 76)]
The filtered tuple from the list is:
[(11, 14)]

コードの解説

  • まず、複数のタプルを含むリストmy_listを定義し、コンソールに表示します。
  • 次に、フィルタリング条件となるターゲットリストtarget_listを定義します。
  • リスト内包表記の中でany()関数を使用することで、「ターゲットリストの要素がひとつでもタプル内に含まれているか」を判定できます。
  • 条件を満たすタプルのみが新しいリストとして抽出され、変数my_resultに代入されます。
  • 最後に、フィルタリングされた結果をコンソールに出力します。

ポイント:any()関数の役割

any(i in tup for i in target_list)は、ターゲットリスト内の各要素について「その要素がタプルtupに含まれるか」を順番に評価し、ひとつでもTrueになれば全体としてTrueを返します。この仕組みにより、ターゲットリストのどれかの要素を持つタプルだけを効率的に抽出できるのです。

なお、すべての要素が含まれている場合のみ抽出したい場合は、any()all()に置き換えるだけで対応できます。

  1. 【Python】リスト内のタプルからn番目の要素を取得する方法

    Pythonのリストには、タプルを要素として格納することができます。本記事では、リスト内の各タプルからn番目の要素を取り出す方法を、具体的なサンプルコードと実行結果とともに解説します。 方法1:インデックスを使う リスト内包表記を使えば、forループでリストの各タプルを走査しながら、指定したインデックスの要素に直接アクセスできます。以下の例では、各タプルのインデックス1(2番目)の要素を取り出し、新しいリストに結果を格納しています。 サンプルコード Alist = [('Mon','3 pm',10),('Tue','12pm',

  2. Pythonのリスト(list)とタプル(tuple)の違いを徹底解説!使い分けのポイント

    Pythonには複数の値をまとめて扱うためのデータ構造として「リスト(list)」と「タプル(tuple)」が用意されています。どちらもシーケンス型の一種で似たような使い方ができますが、「変更可能かどうか」「処理速度」「メモリ効率」などの点で大きな違いがあります。この記事では、それぞれの特徴とコード例、そして6つの観点からの比較表を使って、両者の違いと使い分けのポイントをわかりやすく解説します。リスト(list)とはリストは、異なる型のオブジェクトを格納できるミュータブル(変更可能)なコンテナです。要素の追加・削除・変更が自由に行えるため、データの入れ替えや繰り返し処理(イテレーション)によく