セットのすべてのサブセット (パワーセット) の生成
セット {0, 1, 2, 3} を考えます。パワーセットとして知られる、このセットのすべての可能なサブセットを取得するにはどうすればよいですか?
効果的なアプローチの 1 つは、このタスクに便利なレシピを提供する Python の itertools モジュールを利用することです。
from itertools import chain, combinations def powerset(iterable): "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)" s = list(iterable) return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
powerset([1,2,3]) を実行すると、次の出力が得られます。
>>> list(powerset([1,2,3])) [(), (1,), (2,), (3,), (1,2), (1,3), (2,3), (1,2,3)]
空のタプルを削除すると、次の結果が得られます。
>>> list(powerset([1,2,3]))[1:] [(1,), (2,), (3,), (1,2), (1,3), (2,3), (1,2,3)]
特定のニーズに合わせて出力を調整するには、range ステートメントを調整して (例: range(1, len(s) 1))、空のタプルを除外します。タプル).
以上がPython を使用してセット (パワーセット) のすべてのサブセットを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。