l1 = [1, 2, 4, 5, 7, 9] l2 = [2, 3, 4, 6, 8]
list ⇒ set(集合)に変換して積を求めて list に戻す
s1 = set(l1) s2 = set(l2) s3 = s1 & s2 l3 = list(s3)
l3 は、
[2, 4]
集合演算子 & で計算する代わりの積のメソッド(intersection)、
s3 = s1.intersection(s2)
和(union)
s3 = s1 | s2
s3 = s1.union(s2)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
差(difference)
s3 = s2 - s1 print(s3) d = s2.difference(s1) print(d)
{8, 3, 6} {8, 3, 6}
対象差(symmetric_difference)
s3 = s1 ^ s2 print(s3) d = s1.symmetric_difference(s2) print(d)
{1, 3, 5, 6, 7, 8, 9} {1, 3, 5, 6, 7, 8, 9}
Java のケースは、こちら、
2つのリストに存在する要素を抽出したリストを求める(Javaのケース) - Oboe吹きプログラマの黙示録