Pythonでのリスト交差

List Intersection Python



さまざまなデータ型を格納するために、Pythonには多くのオブジェクト変数が存在します。 NS リスト はこれらの変数の1つであり、さまざまなニーズに応じてさまざまなタイプのデータを格納できます。プログラミングの目的で、複数のリストから共通、非共通、または共通と非共通の両方のデータ項目を見つける必要がある場合があります。 Pythonには、Pythonセットに対してこれらのタイプのタスクを実行できるいくつかの組み込み関数と演算子が含まれています。複数のリストから共通データを見つけることをリスト共通部分と呼びますが、セットのようなリストに複数のリストから共通データ項目を見つけるための演算子や組み込み関数はありません。このチュートリアルでは、Pythonでリストを交差させる方法を説明します。

交差点

このチュートリアルを始める前に、交差の概念について説明します。以下に、例として2つを示します。







リスト1= [4 7 2. 3 9 6 十一]
リスト2= [6 5 1 20 9 7 4 3]

交差を適用した後、結果がおそらくList3という名前の別のリストに格納されている場合、次のデータが含まれます。



リスト3= [4 6 7 9]

List3のグラフィック表現を以下に示します。







例1:set()メソッドを介してリストを交差させる

次の例は、を使用して2つのリストを交差させる方法を示しています。 設定() メソッドと オペレーター。ここでは、list1とlist2という名前の2つのリストが宣言されています。これらのリストには両方とも数値が含まれています。 3番目のリストは、リスト1とリスト2をセットを介してセットに変換することによって生成されます。 () メソッドを使用して交差を適用し、 オペレーター。次に、3つのリストの値が出力されます。

#!/ usr / bin / env python3
#list1を定義する
list1= [22 8 フォーファイブ 十一 3. 4 9 20 7]
#list2を定義する
list2= [12 9 20 78 53 8 2 3031]
#list1とlist2を交差させてlist3を作成します
list3= リスト((設定((list1)。設定((list2)。)。
#リストを印刷1
印刷(('list1の値:NS'list1)。
#リスト2を印刷
印刷(('list2の値:NS'list2)。
#リストを印刷3
印刷(('list1とlist2を交差させた後のlist3の値:NS'list3)。

出力



スクリプトの実行後、次の出力が表示されます。 3つの値は両方のリストに共通です。これらの値は8、9、および20であり、3番目のリストの内容に示されています。

例2:intersection()メソッドを介してリストを交差させる

リストオブジェクトが2つのリスト間の共通部分の値を見つけるための直接の組み込みメソッドはありません。ただし、このセットには、という名前の組み込みメソッドがあります。 交差点() 、セット間の共通値を見つけるため。名前の付いたカスタム関数 交差点リスト() 、は、2つのリスト間の共通の値を見つけるために、次のスクリプトで定義されています。このセットの1つの制限は、数値データのみを含めることができることです。リスト変数には、数値、ブール値など、さまざまなタイプのデータ文字列を含めることができます。スクリプトでは、 list1list2 とテキストを含むすべての文字列データが含まれます。スクリプトは、間のすべての一般的な文字列と数値を出力します list1list2

#!/ usr / bin / env python3

#2つのリストの共通部分を返す関数を定義します
def交差リスト((list1list2)。
戻る 設定((list1)。交差点((list2)。

#list1を定義する
list1= ['こんにちは''7'「8」「10」「2」]
#list2を定義する
list2= [「8」「3.4」'こんにちは'「2」'21'「1」10]
'' 'カスタム関数を呼び出して保存します
list1とlist2の交差結果
リスト3 '' 'に

list3=交差リスト((list1list2)。
#リストを印刷1
印刷(('list1の値:NS'list1)。
#リスト2を印刷
印刷(('list2の値:NS'list2)。
#リストを印刷3
印刷(('list1とlist2を交差させた後のlist3の値:NS'list3)。

出力

スクリプトの実行後、次の出力が表示されます。ここで、2つのリストに共通する値は、「2」、「8」、および「Hello」です。

例3:ループメソッドを介してリストを交差させる

前の2つの例は、組み込み関数を使用したリストの共通部分を示しています。次の例は、組み込み関数のないリスト交差を示しています。これは、ループを使用して実現できます。テキストデータの2つのリストがスクリプトで宣言されています。 NS にとって ここでは、ループを使用して、 list1list2、 そしてそれは変数に格納されます、 list3 。次に、これら3つのリスト変数の値が出力されます。

#!/ usr / bin / env python3

#list1を定義する
list1= [「ファーハン」「アビル」「アカッシュ」「ミーナ」「マザー」]
#list2を定義する
list2= [「ミーナ」「モイナ」'ノーベル''クローザー'「アビル」「ファーヒーン」]
#forループを使用して交差点を見つけ、結果をlist3に保存します
list3= [価値にとって価値list1もしも価値list2]

#リストを印刷1
印刷(('list1の値:NS'list1)。
#リスト2を印刷
印刷(('list2の値:NS'list2)。
#リストを印刷3
印刷(('list1とlist2を交差させた後のlist3の値:NS'list3)。

出力

スクリプトの実行後、次の出力が表示されます。ここで、2つのリストの共通のテキスト値は次のとおりです。 「アビール」「ミーナ。」

例4:filter()メソッドを介して単純なリストとネストされたリストを交差させる

次の例は、単純なリストとネストされたリストの共通部分を示しています。 NS フィルター() メソッドと ラムダ 関数は、list1とlist2の間の交差を実行するためにスクリプトで使用されます。リストにリストアイテムとして1つ以上のリストが含まれている場合、そのリストはネストされたリストと呼ばれます。ここ、 list1 は単純なリストであり、 list2 はネストされたリストですが、 list3 の交差値が含まれています list1list2

#!/ usr / bin / env python3

#簡単なリストを定義する
list1= [22 8 フォーファイブ 十一 3. 4 9 20 7]
#ネストされたリストを定義する
list2= [[12 9 20] [78 十一 53 8] [2 30 31 フォーファイブ]]
#filter()を使用してlist1とlist2を交差させてlist3を作成します
list3= [リスト((フィルター((ラムダn:nlist1slist)。)。 にとってslistlist2]

#リストを印刷1
印刷(('list1の値:NS'list1)。
#リスト2を印刷
印刷(('list2の値:NS'list2)。
#リストを印刷3
印刷(('list1とlist2を交差させた後のlist3の値:NS'list3)。

出力

スクリプトの実行後、次の出力が表示されます。 list2変数には、リスト項目として他の3つのリストが含まれています。したがって、結果は、list2のこれら3つのサブリストとlist1の共通部分を示しています。

結論

リストの交差は、多数のリストアイテムを含むリスト間の共通の値を見つけるための便利な方法です。このチュートリアルでは、組み込み関数を使用する場合と使用しない場合のリスト交差を実行する方法を示します。この記事を読んだ後、リストの共通部分の概念が明確になり、このチュートリアルに示されている方法に従って、スクリプトにリストの共通部分を適用できるようになります。