Pythonで配列が他の配列の部分集合かどうかをチェックする方法


  1. 方法1: set()を使用する方法 まず、Pythonのset()関数を使用して、両方の配列を集合に変換します。そして、isdisjoint()メソッドを使用して、2つの集合が共通の要素を持っていないかどうかを確認します。部分集合の場合、共通の要素はありませんので、isdisjoint()はTrueを返します。

    array1 = [1, 2, 3, 4, 5]
    array2 = [3, 4]
    
    set1 = set(array1)
    set2 = set(array2)
    
    if set1.isdisjoint(set2):
       print("array2はarray1の部分集合ではありません")
    else:
       print("array2はarray1の部分集合です")
  2. 方法2: all()とin演算子を使用する方法 この方法では、all()関数とin演算子を使用して、array2のすべての要素がarray1に存在するかどうかを確認します。もしarray2のすべての要素がarray1に存在する場合、array2はarray1の部分集合です。

    array1 = [1, 2, 3, 4, 5]
    array2 = [3, 4]
    
    if all(elem in array1 for elem in array2):
       print("array2はarray1の部分集合です")
    else:
       print("array2はarray1の部分集合ではありません")

以上の方法で、Pythonで配列が他の配列の部分集合かどうかを簡単にチェックすることができます。どちらの方法も効果的であり、使用するのは好みの問題です。