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

Pythonでネストしたタプルから一意の要素を取得する方法

ネストした(入れ子になった)タプルの中から一意の要素だけを取り出したい場合、ネストしたループset(集合)を組み合わせるのが効果的です。

Pythonには「set」と呼ばれるデータ型が標準で用意されています。setは重複しない要素のみを保持するコレクションであり、和集合・差集合・積集合・対称差といった集合演算にも活用できます。

ここでは、setを使って重複を排除しながら要素を順番に取り出す方法を解説します。

サンプルコード

my_list_1 = [(7, 8, 0), (0 ,3, 45), (3, 2, 22), (45, 12, 9)]

print ("The list of tuple is : " )
print(my_list_1)

my_result = []
temp = set()
for inner in my_list_1:
    for elem in inner:
        if not elem in temp:
            temp.add(elem)
            my_result.append(elem)
print("The unique elements in the list of tuples are : ")
print(my_result)

実行結果

The list of tuple is :
[(7, 8, 0), (0, 3, 45), (3, 2, 22), (45, 12, 9)]
The unique elements in the list of tuples are :
[7, 8, 0, 3, 45, 2, 22, 12, 9]

処理の流れと解説

  • まず、複数のタプルを含むリストを定義し、コンソールに表示します。
  • 結果を格納するための空のリスト my_result と、重複チェック用の空のset temp を作成します。
  • 外側のループで各タプルを、内側のループでタプル内の各要素を順に走査します。
  • 要素がまだsetに存在しない場合のみ、その要素をsetに追加すると同時に、結果リストにも追加します。これにより最初に出現した順序が保たれます。
  • 最終的な結果は変数に代入され、コンソールに出力されます。

このように、setによる存在チェックを挟むことで、ネストしたタプル全体から重複のない要素リストを効率的に作成できます。リストだけで判定すると計算量が増えますが、setは高速な membership チェック(in 演算)を提供するため、データ量が多い場合でもパフォーマンス面で有利です。

  1. Pythonでリストのサイズ(要素数)を取得する方法|len関数の使い方を解説

    Pythonでリストのサイズ(要素数)を調べたいときは、組み込み関数 len() を使います。これは最もシンプルで標準的な方法です。len() 関数とはPython公式ドキュメントでは、len() について次のように説明されています。「len(arg) はオブジェクトの長さ(要素の数)を返します。引数には、文字列・bytes・タプル・リスト・range などのシーケンス、あるいは辞書・セット・frozenset などのコレクションを指定できます。」len() は組み込み関数であるため、追加のインポートは不要です。また、ユーザー定義クラスが特殊メソッド __len__ を実装していれば、そのクラ

  2. Pythonのネストされた辞書の要素数を数える方法

    ネストされたPython辞書の要素数を数える基本の考え方 Pythonでは、辞書に用意された items() メソッドを使うことで、すべてのキーと値のペアを順番に取り出しながら反復処理できます。 for k, v in students.items(): ネストされた(入れ子構造の)辞書の場合、各アイテムの値そのものがさらに辞書になっています。そこで、len(v) を使えば各サブ辞書の要素数を取得できます。ループの中でこの値を累積加算していけば、辞書全体の要素の合計数を求められます。 ループを使って要素数をカウントする例 以下は、2人の学生情報を持つネストされた辞書の全要素数を数えるサンプル