logo

Python で 2 つのリストを比較する方法

Python には、2 つのリストを比較するための複数の方法が用意されています。比較とは、リストのデータ項目が別のリストのデータ項目と同じであるかどうかをチェックする処理です。

 list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal 

2 つのリストを比較する方法を以下に示します。

  • cmp() 関数
  • set() 関数と == 演算子
  • sort() 関数と == 演算子
  • collection.counter() 関数
  • Reduce() 関数と Map() 関数

cmp() 関数

パイソン cmp() 関数は 2 つの Python オブジェクトを比較し、比較に従って整数値 -1、0、1 を返します。

注 - Python 3.x バージョンでは使用しません。

set() 関数と == 演算子

パイソン セット() 関数 要素の順序を考慮せずに、リストを操作してセットに組み込みます。さらに、等号演算子 (==) を使用してリストのデータ項目を比較します。次の例を理解してみましょう。

例 -

 list1 = [11, 12, 13, 14, 15] list2 = [12, 13, 11, 15, 14] a = set(list1) b = set(list2) if a == b: print('The list1 and list2 are equal') else: print('The list1 and list2 are not equal') 

出力:

 The list1 and list2 are equal 

説明:

上の例では、2 つのリストを相互に比較することを宣言しました。これらのリストをセットに変換し、== 演算子を使用して各要素を比較しました。両方のリストのすべての要素が等しい場合、ブロックが実行され、結果が出力されます。

== 演算子を使用した sort() メソッド

パイソン 選別() 関数はリストをソートするために使用されます。同じリストの要素は同じインデックス位置を意味します。リストは等しいです。

注 - sort() メソッドでは、比較前にリストをソートしているため、リスト項目を任意の順序で渡すことができます。

次の例を理解してみましょう -

例 -

 import collections list1 = [10, 20, 30, 40, 50, 60] list2 = [10, 20, 30, 50, 40, 70] list3 = [50, 10, 30, 20, 60, 40] # Sorting the list list1.sort() list2.sort() list3.sort() if list1 == list2: print('The list1 and list2 are the same') else: print('The list1 and list3 are not the same') if list1 == list3: print('The list1 and list2 are not the same') else: print('The list1 and list2 are not the same') 

出力:

 The list1 and list3 are not the same The list1 and list2 are not the same 

collection.counter() 関数

収集モジュールが提供するのは、 カウンター()、 リストを効率的に比較します。データを辞書形式で保存し、リストの項目の頻度をカウントします。

注 - この関数では、リストの要素の順序は関係ありません。

例 -

 import collections list1 = [10, 20, 30, 40, 50, 60] list2 = [10, 20, 30, 50, 40, 70] list3 = [50, 10, 30, 20, 60, 40] if collections.Counter(list1) == collections.Counter(list2): print('The lists l1 and l2 are the same') else: print('The lists l1 and l2 are not the same') if collections.Counter(list1) == collections.Counter(list3): print('The lists l1 and l3 are the same') else: print('The lists l1 and l3 are not the same') 

出力:

 The lists list1 and list2 are not the same The lists list1 and list3 are the same 

reduce() と map()

地図() function は関数と Python 反復可能オブジェクト (リスト、タプル、文字列など) を引数として受け取り、マップ オブジェクトを返します。この関数はリストの各要素に実装され、結果としてイテレータを返します。

さらに、 減らす() メソッドは、指定された関数を反復可能なオブジェクトに再帰的に実装します。

ここでは両方の方法を組み合わせて使用​​します。の 地図() 関数は、すべての反復可能なオブジェクトに関数 (ユーザー定義またはラムダ関数の場合があります) を実装します。 減らす() 関数は、再帰的に適用される処理を処理します。

注 -reduce() 関数を使用するには、functool モジュールをインポートする必要があります。

次の例を理解してみましょう。

例 -

 import functools list1 = [10, 20, 30, 40, 50] list2 = [10, 20, 30, 50, 40, 60, 70] list3 = [10, 20, 30, 40, 50] if functools.reduce(lambda x, y: x and y, map(lambda a, b: a == b, list1, list2), True): print('The list1 and list2 are the same') else: print('The list1 and list2 are not the same') if functools.reduce(lambda x, y: x and y, map(lambda a, b: a == b, list1, list3), True): print('The list1 and list3 are the same') else: print('The list1 and list3 are not the same') 

出力:

 The list1 and list2 are not the same The list1 and list3 are the same 

このセクションでは、Python で 2 つのリストを比較するさまざまな方法について説明しました。

映画女優カジャール