2012-04-26 6 views
5

私は2つの異なるセットのデカルト積を見つけようとしています。リストや辞書のセットのデカルト商品については、ウェブ上で何も見つけることができません。設定されたpythonの力のセットとデカルトのプロダクト

また、パワーセットは非常に混乱しています。

私の本には、これらのいずれも使用していません。

yallのいずれかが正しい方向に向いていますか?

答えて

12

デカルト商品については、itertools.productをご確認ください。例えば

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のために

the itertools docsも私たちのレシピを与える

>>> 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)] 
+0

はそれが私はにこれらを実装しようとしています、それはより多くを明らかにした編集をありがとうございました私のコードは現在itertoolsをインポートする必要がありますか?再度、感謝します! – bradb

+0

はい、他のモジュールから使用している関数と同様に、 '' itertools''から使用する関数をインポートする必要があります。 –

+0

powersetは 's = set(iterable)'でよりよく定義できます。 – Darthfett

関連する問題