10

2つの異なるセットのデカルト積を見つけようとしています。リストまたは辞書のいずれかのセットのデカルト積について、Web上で何も見つかりません。

また、べき集合は非常に混乱します。

これらのどちらも、私が使用している私の本にはありません。

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

18

デカルト積については、をチェックしてくださいitertools.product

パワーセットの場合itertoolsドキュメントにはレシピも記載されています。

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))

例えば:

>>> test = {1, 2, 3}
>>> list(powerset(test))
[(), (1,), (2,), (3,), (1, 2), (1, 3), (2, 3), (1, 2, 3)]
>>> list(product(test, test))
[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
于 2012-04-26T23:45:11.160 に答える