Python でリストのユニオンを取得する
- Python で一般的な要素を繰り返して UnionofTwo リストを取得する
- Python で 2つのリストの和集合をソートされた順序で取得する
- Python で共通の要素を繰り返さずに 2つのリストの和集合を取得する
- Python で 3つ以上のリストの和集合を取得する
リストの結合とは、異なるリストのすべての要素が 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]
リスト l1
と l2
の和集合を見つけ、その結果を 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]
+
演算子を使用してリスト l1
と l2
の和集合を計算し、その和集合を union_l1_l2
に格納します。sorted()
メソッドを使用してリスト union_l1_l2
の要素をソートし、l1
と l2
の和集合をソートされた方法で取得します。
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]
ここでは、+
演算子を使用して l1
と l2
の和集合を見つけ、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()
メソッドを使用しているため、要素が繰り返されることはありません。