logo

2 つのリストの共通部分を見つける Python プログラム

このチュートリアルでは、2 つのリストの共通部分を取得する方法について説明します。 2 つのリストの共通部分は、最初のリストの両方に馴染みのある要素をすべて取得する必要があることを意味します。

パイソン は、優れた組み込みデータ構造で知られています。 Python リストは、Python の有名で貴重な組み込みデータ型の 1 つです。さまざまなデータ型の値を並べ替えた順序で保存できます。ただし、セットのようなリストに対する組み込み関数はありません。

Java ロングから int

Python には、リストの交差を実行するためのさまざまな方法が用意されています。次のシナリオを見てみましょう。

入力:

 list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] 

出力:

 [90, 11, 58, 31, 66, 28, 54] 

入力:

 list1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] list2 = [9, 9, 74, 21, 45, 11, 63, 28, 26] 

出力:

 [9, 11, 26, 28] 

2 つのリストの共通部分を取得する次のメソッドを見てみましょう。

方法 - 1: for ループを使用する

 # Python program to get the intersection # of two lists in most simple way def intersection_list(list1, list2): list3 = [value for value in list1 if value in list2] return list3 # Driver Code list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2)) 

出力:

 [90, 11, 58, 31, 66, 28, 54] 

for ループを使用して両方のリストから共通の値を取得し、それを list3 変数に格納しました。

方法 - 2: リストをセットに変換する

 def intersection_list(list1, list2): return list(set(list1) & set(list2)) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2)) 

出力:

 [66, 90, 11, 54, 58, 28, 31] 

方法 - 3:

組み込みセットを使用します。 交差点() 方法。の 交差点() セットのファーストクラスの部分です。次の例を理解してみましょう。

例 -

配列Javaに追加
 # Python program to get the intersection # of two lists using set() and intersection() def intersection_list(list1, list2): return set(list1).intersection(list2) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2)) 

出力:

 {66, 90, 11, 54, 58, 28, 31} 

方法 - 4:

この方法ではハイブリッド方法を使用します。これはタスクを実行するための非常に効率的な方法です。次の例を理解してみましょう。

例 -

 # Python program to get the intersection # of two lists def intersection(list1, list2): # Use of hybrid method temp = set(list2) list3 = [value for value in list1 if value in temp] return list3 list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection(list1, list2)) 

出力:

 [90, 11, 58, 31, 66, 28, 54] 

方法 - 5:

この方法では、 フィルター() 方法。交差は、他のリスト内のサブリストに対して実行されます。次の例を理解してみましょう。

例 -

 # Python program togetthe intersection # of two lists, sublists and use of filter() def intersection_list(list1, list2): list3 = [list(filter(lambda x: x in list1, sublist)) for sublist in list2] return list3 list1 = [10, 9, 17, 40, 23, 18, 56, 49, 58, 60] list2 = [[25, 17, 23, 40, 32], [1, 10, 13, 27, 28], [60, 55, 61, 78, 15, 76]] print(intersection_list(list1, list2)) 

出力:

 [[17, 23, 40], [10], [60]] 

フィルター() メソッドはサブリストの各項目を取得し、それがリストに存在するかどうかを確認します1。リスト内包表記は list2 内の各サブリストに対して実行されます。