Python でリストのユニオンを取得する

Jay Prakash Gupta 2023年1月30日
  1. Python で一般的な要素を繰り返して UnionofTwo リストを取得する
  2. Python で 2つのリストの和集合をソートされた順序で取得する
  3. Python で共通の要素を繰り返さずに 2つのリストの和集合を取得する
  4. Python で 3つ以上のリストの和集合を取得する
Python でリストのユニオンを取得する

リストの結合とは、異なるリストのすべての要素が 1つのリスト内に配置されることを意味します。2つまたは 3つ以上のリストの和集合を見つけることができます。リストのユニオンを実現するには、さまざまな方法があります。すべてのメソッドは、十分なコード例とともに以下に説明されています。

Python で一般的な要素を繰り返して UnionofTwo リストを取得する

+ 演算子を使用して 2つのリストを追加し、2つのリストの和集合を取得できます。

コード例:

l1 = [1, 2, 3, 4, 5]
l2 = [2, 4, 6.8, 10]

l3 = l1 + l2

print("l1: ", l1)
print("l2: ", l2)
print("Union of l1 and l2 with element repetition: ", l3)

出力:

l1:  [1, 2, 3, 4, 5]
l2:  [2, 4, 6.8, 10]
Union of l1 and l2 with element repetition:  [1, 2, 3, 4, 5, 2, 4, 6.8, 10]

リスト l1l2 の和集合を見つけ、その結果を l3 に格納します。出力から、リストオペランドのいずれかで同じ要素が繰り返されている場合、和集合を見つけながら要素を繰り返していることが明らかです。

Python で 2つのリストの和集合をソートされた順序で取得する

ソートされた方法でリストの和集合を検索する場合は、sorted() メソッドを使用して、和集合操作後に取得されたリストをソートします。

コード:

l1 = [11, 20, 1, 2, 3, 4, 5]
l2 = [2, 4, 6, 8, 10]

union_l1_l2 = l1 + l2
l3 = sorted(union_l1_l2)

print("l1: ", l1)
print("l2: ", l2)
print("Sorted union of two l1 and l2 : ", l3)

出力:

l1:  [11, 20, 1, 2, 3, 4, 5]
l2:  [2, 4, 6, 8, 10]
Sorted union of two l1 and l2 :  [1, 2, 2, 3, 4, 4, 5, 6, 8, 10, 11, 20]

+ 演算子を使用してリスト l1l2 の和集合を計算し、その和集合を union_l1_l2 に格納します。sorted() メソッドを使用してリスト union_l1_l2 の要素をソートし、l1l2 の和集合をソートされた方法で取得します。

Python で共通の要素を繰り返さずに 2つのリストの和集合を取得する

Python では、セットは要素の複製を許可しないデータ型です。したがって、set() を使用して、共通の要素を繰り返さずに 2つのリストの和集合を取得できます。

コード:

def union_without_repetition(list1, list2):
    result = list(set(list1 + list2))
    return result


l1 = [1, 2, 3, 4, 5]
l2 = [2, 4, 6, 8, 10]
l3 = union_without_repetition(l1, l2)

print("l1: ", l1)
print("l2: ", l2)
print("Union of two l1 and l2 without repetition : ", l3)

出力:

l1:  [1, 2, 3, 4, 5]
l2:  [2, 4, 6, 8, 10]
Union of two l1 and l2 without repetition :  [1, 2, 3, 4, 5, 6, 8, 10]

ここでは、+ 演算子を使用して l1l2 の和集合を見つけ、set() 関数を使用して一意の要素のみを選択し、最後に list() 関数を使用してセットをリストに変換します。

Python で 3つ以上のリストの和集合を取得する

2つのリストの和集合はすでに計算済みです。しかし、3つ以上のリストの和集合を見つけた場合の対処法。とても簡単です。set()union() の両方の組み込み python 関数を使用して、3つ以上のリストの和集合を見つけることができます。

コード:

def union(lst1, lst2, lst3):
    final_list = list(set().union(lst1, lst2, lst3))
    return final_list


l1 = [1, 2, 3, 4, 5]
l2 = [2, 4, 6, 8, 10]
l3 = [5, 6, 7, 8, 11, 15, 18]
print("l1: ", l1)
print("l2: ", l2)
print("l3 : ", l3)
print("Union of more than l1 l2 and l3: ", union(l1, l2, l3))

出力:

l1:  [1, 2, 3, 4, 5]
l2:  [2, 4, 6, 8, 10]
l3 :  [5, 6, 7, 8, 11, 15, 18]
Union of more than l1 l2 and l3:  [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 18]

ここでは、set() コンストラクターを使用して set オブジェクトを作成し、そのオブジェクトに対して union() メソッドを呼び出します。union() メソッドは、任意の数の list オブジェクトを受け取り、それらの和集合を返すことができます。

この場合、set クラスの union() メソッドを使用しているため、要素が繰り返されることはありません。

関連記事 - Python List