2016-10-31 10 views
-1

リストのサブリストを返すプログラムを書こうとしています。すなわち、リスト[1,2,3]の場合、プログラムは[1],[2],[3],[1,2],[2,3] and [1,2,3]を返します。リストのサブリストを返すPythonの組み合わせアルゴリズムプログラム

私はリストから離れて辞書の概念も知っています。だから、他の同様の問題で同じ概念を実装できるように、この問題をどのように解決できるか教えてもらえますか?

答えて

0

あなたが空の要素たくない場合は、実装here

from itertools import chain, combinations 

def powerset(iterable): 
    xs = list(iterable) 
    # note we return an iterator rather than a list 
    return chain.from_iterable(combinations(xs,n) for n in range(len(xs)+1)) 

>>> list(powerset([1,2,3])) 
[(), (1,), (2,), (3,), (1, 2), (1, 3), (2, 3), (1, 2, 3)] 

があります:

>>> list(filter(lambda x: len(x) >= 1, powerset([1,2,3]))) 
[(1,), (2,), (3,), (1, 2), (1, 3), (2, 3), (1, 2, 3)] 
+0

が何もインポートせずにこれを行うには、他の方法ではないですか? forループや再帰を使うだけでいいですか? –

+0

@ShrijanAryalもちろん、私はあなたがそれをやる理由はわかりません。 – rofls

+0

この宿題ですか、それともアルゴリズムの仕組みを理解しようとしているだけですか? – rofls

関連する問題