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

Pythonでタプルのリストから最初の要素が重複しているタプルを削除する方法

Pythonで、タプルのリストから「最初の要素が重複しているタプル」を取り除きたい場合があります。そんなときは、シンプルな for ループと、セット(set)の add メソッド、リストの append メソッドを組み合わせることで、効率よく実現できます。

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

サンプルコード

my_input = [(45.324, 'Hi Jane, how are you'),(34252.85832, 'Hope you are good'),(45.324, 'You are the best.')]
visited_data = set()

my_output_list = []
for a, b in my_input:
    if not a in visited_data:
        visited_data.add(a)
        my_output_list.append((a, b))

print("元のタプルのリスト : ")
print(my_input)
print("重複を削除した後のタプルのリスト :")
print(my_output_list)

実行結果

元のタプルのリスト : 
[(45.324, 'Hi Jane, how are you'), (34252.85832, 'Hope you are good'), (45.324, 'You are the best.')]
重複を削除した後のタプルのリスト :
[(45.324, 'Hi Jane, how are you'), (34252.85832, 'Hope you are good')]

処理の解説

  • まず、重複を含むタプルのリストを定義し、コンソールに表示します。
  • 次に、既に確認済みの値を記録するための空のセットと、結果を格納するための空のリストを作成します。
  • for ループでタプルのリストを順番に処理し、各タプルの最初の要素がセットに存在しない場合は、その値をセットに追加すると同時に、タプル全体を結果リストにも追加します。
  • 最初の要素が既にセットに存在する場合(=重複している場合)はスキップされるため、結果として重複のないリストが得られます。
  • 最後に、処理後のリストをコンソールに出力して完了です。

この手法では、セットによる存在チェックの計算量が O(1) であることを活かしているため、リスト全体の処理も高速に行えます。データ件数が多い場合でも安心して使えるアプローチです。

  1. Pythonで同じ先頭要素を持つタプルの値を合計する方法

    タプル(tuple)はPythonのコレクション(配列)の一種で、順序は保持されるものの、後から変更することができないデータ構造です。複数のタプルを扱う際に、最初の要素が同じタプル同士について、2番目の要素を合算したいというケースがよくあります。本記事では、そのような場合に活用できる2つの方法を具体的なコード例とともに解説します。方法1:map関数とforループを組み合わせるまず、タプルで構成されたリストを用意します。次に、リストを辞書型に変換することで、タプルの各要素を「キー」と「値」のペアとして関連付けられるようにします。そのうえでforループを使い、各キーに対応する値を順次加算していきま

  2. Pythonでリストから「数値とその3乗」を含むタプルのリストを作成する方法

    この記事では、指定された問題文に対する解決策とそのアプローチについて詳しく解説します。問題文リストが入力として与えられたとき、各要素の数値とその3乗(キューブ)をペアにしたタプルのリストを作成する必要があります。解決アプローチこの問題は、Pythonのリスト内包表記を使うことで、簡潔かつ効率的に解くことができます。以下に、インライン実装による具体的な解法を示します。コード例list1 = [0,1,2,4,6] res = [(val, pow(val, 3)) for val in list1] # main print(res)出力結果[(0, 0), (1, 1), (2, 8), (4