Python で 2つのリストの違いを取得する
-
set.difference()
を使用して、Python の 2つのリストの違いを見つける -
Python で
set.symmetric_difference()
を使用して 2つのリストの違いを見つける -
キーワード
in
を使用して、Python の 2つのリストの違いを見つける -
NumPy
ライブラリを使用して、Python の 2つのリストの違いを見つける
リスト、辞書、タプル、配列などのデータ構造に対して実行される操作は多数あります。Python では、これらのデータ構造はほとんどすべてのプログラムで使用されます。これらのデータ構造の 1つは、Python のリストです。Python プログラミングのリストは、1つの変数に複数の項目を格納するのに役立ちます。2つのリストの違いを見つけることは、ほとんどすべてのプログラマーが実行する非常に一般的なタスクです。
このチュートリアルでは、Python で 2つのリストの違いを取得するいくつかの方法を示します。
set.difference()
を使用して、Python の 2つのリストの違いを見つける
set()
メソッドは、ユーザーが反復可能シーケンスを反復可能シーケンスに変換するのに役立ちます。これはセットとも呼ばれます。反復可能オブジェクトは、リスト、ディクショナリ、またはタプルにすることができます。
set.difference()
関数は、2つのセット間の差を返すために使用されます。この関数は、基本的に 2つのセットの共通要素を削除します。
list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]
difference_1 = set(list_1).difference(set(list_2))
difference_2 = set(list_2).difference(set(list_1))
list_difference = list(difference_1.union(difference_2))
print(list_difference)
出力:
[50, 5, 40, 25, 60, 15]
この方法の場合、最初のステップは 2つのリストを 2つの変数に格納することです。set()
関数は、これらのリストをセットに変換するために使用されます。同じステップで、set.difference()
関数を使用して、2つのセットの違いを見つけます。difference_1
変数は、list_2
ではなく list_1
の要素を取得することに注意してください。
difference_2
変数は、list_2
にあり、list_1
にはない要素を取得します。その後、union
関数を使用して、difference_1
変数と difference_2
変数からすべての要素を取得します。さらに、list()
関数を使用して、両方のセットをリストに再度変換します。最後に、結果のリストが出力されます。
Python で set.symmetric_difference()
を使用して 2つのリストの違いを見つける
ここでは、set()
メソッドを使用して、最初に両方のリストをセットに変換します。
symmetric_difference()
メソッドは、最初のセットまたは 2 番目のセットのいずれかにある要素を返すために使用されます。このメソッドは、2つのセットの共通要素のように共通部分を返しません。
list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]
set_difference = set(list_1).symmetric_difference(set(list_2))
list_difference = list(set_difference)
print(list_difference)
出力:
[5, 40, 15, 50, 25, 60]
set()
メソッドは、リストをセットに変換するためにも使用されます。差を取得した後、set_difference
をリストに戻すように、list()
関数を使用して最終セットを取得および変換します。
キーワード in
を使用して、Python の 2つのリストの違いを見つける
in
キーワードは、要素がリストのように反復可能なシーケンスで存在するかどうかを確認するのに役立ちます。
append()
関数もこのメソッドで使用されます。append()
は、既存のリストに要素を追加するために使用されます。新しいリストは作成されませんが、要素を追加して初期リストを変更します。
list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]
list_difference = []
for element in list_1:
if element not in list_2:
list_difference.append(element)
print(list_difference)
出力:
[5, 15, 25]
この方法では、最初に、ゼロ要素で出力する必要がある最終リストを初期化します。次に、for
ループを使用して、最初のリストである list_1
から反復を開始します。その後、キーワード not in
を使用して、要素が 2 番目のリストにあるかどうかを確認します。
最後に、append()
メソッドを使用して、2 番目のリストにない要素を最初のリスト(つまり、list_difference
)に追加します。ただし、このメソッドの欠点は、2 番目のリストから要素が返されないことです。
この方法を簡単にするには、リスト内包表記を使用します。リスト内包表記は、既存のリストの要素を使用して新しいリストを作成するのに役立つメソッドです。
list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]
list_difference = [element for element in list_1 if element not in list_2]
print(list_difference)
出力:
[5, 15, 25]
NumPy
ライブラリを使用して、Python の 2つのリストの違いを見つける
Python の NumPy
ライブラリは、非常に一般的に使用されるライブラリです。このライブラリは、ユーザーが配列、行列、線形代数でタスクを実行するのに役立ちます。
このメソッドでは、NumPy
ライブラリの 3つの関数を使用して、2つのリストの違いを取得します。これらの 3つの関数は、np.array()
、np.setdiff1d()
、および np.concatenate()
です。
配列は、NumPy
ライブラリの主要なデータ構造です。np.array()
関数は、配列の作成を支援し、それらの操作を支援します。
np.setdiff1d()
関数は、2つの配列間のセットの差を見つけ、2 番目の配列ではなく最初の配列にある値を返すのに役立ちます。
np.concatenate
関数は、2つ以上の NumPy
配列を組み合わせるために使用されます。以下の例を確認してください。
import numpy as np
list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]
array_1 = np.array(list_1)
array_2 = np.array(list_2)
difference_1 = np.setdiff1d(array_1, array_2)
difference_2 = np.setdiff1d(array_2, array_1)
list_difference = np.concatenate((difference_1, difference_2))
print(list(list_difference))
出力:
[5, 15, 25, 40, 50, 60]
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn