今回は、Pythonを使用して2つのリストの要素を比較して共通、差分を抽出する方法について解説します。Pythonでは、リスト同士の要素を比較する際に、集合(set)を使用することができます。集合は、要素が重複しないように格納され、順序がないデータ型です。
2つのリストの一致する要素の抽出
まずは、リスト同士の要素を比較して一致する要素を抽出する方法について説明します。
下記の例では、2つのリストを用意し、それぞれの要素を比較し、一致する要素を抽出します。
“`python
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
# 一致する要素を抽出
result = list(set(list1) & set(list2))
print(result)
# [3, 4, 5]
“`
2つのリストの差分を抽出する①
次に差分を抽出する方法について説明します。
下記の例では、2つのリストを用意し、それぞれの要素を比較し、差分を抽出します。
list1 = [1, 2, 3, 4, 5] list2 = [3, 4, 5, 6, 7] # 差分を抽出 result = list(set(list1) - set(list2)) print(result) # [1, 2]
上記の例では、`set()`を使ってリストを集合に変換し、`-`演算子を使って2つの集合の差集合を求めています。
2つのリストの差分を抽出する②
またXOR演算子(^)を用いることで2つのリストの共通しない要素をすべて取得することが可能です
list1 = [1, 2, 3, 4, 5] list2 = [3, 4, 5, 6, 7] # 一致する要素を抽出 result = list(set(list1) ^ set(list2)) print(result) # [1, 2, 6, 7]
(おまけ)2つのリストの重複を除外する
OR演算子(|)を使用することで2つのリストの重複する要素を排除することができます
list1 = [1, 2, 3, 4, 5] list2 = [3, 4, 5, 6, 7] # 一致する要素を抽出 result = list(set(list1) | set(list2)) print(result) # [1,2,3, 4, 5,6,7]
終わり
以上が、Pythonを使用してリストの要素を比較して一致、共通、差分を抽出する方法についての解説です。これらの方法を使うことで、リスト同士の要素の比較を効率的に行うことができます
関連記事;Pandasで条件に一致したデータを検索・抽出するサンプルコード
関連記事:pandasで2つのデータフレームの行の差分を取得する方法
コメント