セットのコレクションがあります。セットの組み合わせごとに、交点だけにあるアイテムの数を見つけたいです。基本的に、ベン図で数値を作成するのと同じことをしたいです。
基本的な例は、それをより明確にするかもしれません。
a = set(1,2,5,10,12)
b = set(1,2,6,9,12,15)
c = set(1,2,7,8,15)
最終的には、次の場所でのみ見つかったアイテムの数になります。
- a
- b
- c
- a と b の交点
- aとcの交点
- b と c の交点
- a、b、c の交点
これを行う拡張不可能な方法は次のとおりです。
num_a = len(a - b - c) # len(set([5,10])) -> 2
num_b = len(b - a - c) # len(set([6,9])) -> 2
num_c = len(c - a - b) # len(set([7,8])) -> 2
num_ab = len((a & b) - c) # 1
num_ac = len((a & c) - b) # 0
num_bc = len((b & c) - a) # 1
num_abc = len(a & b & c) # 2
これは 3 つのセットで機能しますが、セットのコレクションは静的ではありません。