Pythonでは、2つ以上の配列の和集合を求めるためのいくつかの方法があります。ここでは、NumPyのunion1d
関数とPythonのリストを使用した方法を紹介します。
NumPyのunion1d
関数
NumPyのunion1d
関数は、2つの配列の和集合を求めるための関数です。この関数は、2つの入力配列のいずれかに存在する値のユニークな、ソートされた配列を返します。
import numpy as np
# 2つの配列
ar1 = [-1, 0, 1]
ar2 = [-2, 0, 2]
# 和集合を求める
result = np.union1d(ar1, ar2)
print(result) # [-2, -1, 0, 1, 2]
また、2つ以上の配列の和集合を求める場合は、functools.reduce
関数を使用します。
from functools import reduce
# 3つの配列
arrays = ([1, 3, 4, 3], [3, 1, 2, 1], [6, 3, 4, 2])
# 和集合を求める
result = reduce(np.union1d, arrays)
print(result) # [1, 2, 3, 4, 6]
Pythonのリストを使用した方法
Pythonのリストを使用して、2つ以上のリストの和集合を求めることも可能です。以下に、リストの和集合を求めるいくつかの方法を示します。
繰り返しを保持する
def Union(lst1, lst2):
final_list = lst1 + lst2
return final_list
lst1 = [23, 15, 2, 14, 14, 16, 20 ,52]
lst2 = [2, 48, 15, 12, 26, 32, 47, 54]
print(Union(lst1, lst2)) # [23, 15, 2, 14, 14, 16, 20, 52, 2, 48, 15, 12, 26, 32, 47, 54]
繰り返しと順序を保持する
def Union(lst1, lst2):
final_list = sorted(lst1 + lst2)
return final_list
lst1 = [23, 15, 2, 14, 14, 16, 20 ,52]
lst2 = [2, 48, 15, 12, 26, 32, 47, 54]
print(Union(lst1, lst2)) # [2, 2, 12, 14, 14, 15, 15, 16, 20, 23, 26, 32, 47, 48, 52, 54]
繰り返しを排除する
def Union(lst1, lst2):
final_list = list(set(lst1) | set(lst2))
return final_list
lst1 = [23, 15, 2, 14, 14, 16, 20 ,52]
lst2 = [2, 48, 15, 12, 26, 32, 47, 54]
print(Union(lst1, lst2)) # [32, 2, 12, 14, 15, 16, 48, 47, 20, 52, 54, 23, 26]
以上、Pythonで配列の和集合を求める方法について説明しました。これらの方法を活用して、Pythonでのデータ操作をより効率的に行いましょう。