はじめに
数学において、集合の冪集合とは、空集合と集合自身を含む、その集合のすべての部分集合の集合です。Pythonでは、与えられた反復可能オブジェクトの冪集合を返す関数を作成することができます。
This tutorial is from open-source community. Access the source code
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
数学において、集合の冪集合とは、空集合と集合自身を含む、その集合のすべての部分集合の集合です。Pythonでは、与えられた反復可能オブジェクトの冪集合を返す関数を作成することができます。
powerset(iterable)
という名前のPython関数を書きます。この関数は、反復可能オブジェクトを引数として受け取り、その反復可能オブジェクトの冪集合を返します。この関数は以下の手順に従う必要があります。
range()
と itertools.combinations()
を使用して、すべての部分集合を返すジェネレータを作成します。itertools.chain.from_iterable()
と list()
を使用して、ジェネレータを消費してリストを返します。from itertools import chain, combinations
def powerset(iterable):
s = list(iterable)
return list(chain.from_iterable(combinations(s, r) for r in range(len(s)+1)))
powerset([1, 2]) ## [(), (1,), (2,), (1, 2)]
このチャレンジでは、与えられた反復可能オブジェクトの冪集合を返すPython関数を作成する方法を学びました。この関数は、すべての部分集合を返すジェネレータを作成するために range()
と itertools.combinations()
を使用し、ジェネレータを消費してリストを返すために itertools.chain.from_iterable()
と list()
を使用します。