1. ホーム
  2. python

[解決済み] 複数の集合の交点を求めるのに最適な方法とは?

2022-03-17 20:23:46

質問

セットのリストがあります。

setlist = [s1,s2,s3...]

s1 ∩ s2 ∩ s3 ...としたい。

これを実現する関数を書くには、一連のペアリングを実行します。 s1.intersection(s2) などがあります。

推奨される、より良い、または内蔵された方法はありますか?

どのように解決するのですか?

Python バージョン 2.6 以降では、複数の引数を使用して set.intersection() のように

u = set.intersection(s1, s2, s3)

セットがリストになっている場合、次のように変換されます。

u = set.intersection(*setlist)

ここで *a_list リスト展開

なお set.intersection ではなく は静的メソッドですが、これは関数表記を使用して、最初のセットと残りのリストの交点を適用しています。そのため、引数リストが空の場合、これは失敗します。