2013-04-17 64 views
2

比方說,我有以下列表:Python:我如何獲得子集的排列列表?

L = [1, 2, 3] 

我想要得到以下的輸出:

[[1], [2],[3]] 
[[1], [2, 3]] 
[[2], [1, 3]] 
[[3], [1, 2]] 

除了我甚至不知道我是否正確措辭的問題。它基本上像非重複的排列組合?

+0

我相信他想要做的是得到循環表示法中的所有排列。 –

+0

你在找什麼像powerset的東西? http://docs.python.org/2/library/itertools.html#recipes – jamylak

+0

我想我可以編寫一個程序來生成你的確切輸出,但是我不知道如何得到你的輸出......你能解釋一下嗎它更多? – George

回答

-1

這不是特別清楚我你是怎麼來到你的輸出(另一個例子或一個更好的描述可能會有所幫助),但答案可能在於itertools,其中包含了大量的工具與排列組合的工作:

>>> data = [1, 2, 3] 
>>> list(zip(reversed(data), itertools.combinations(data, 2))) 
[(3, (1, 2)), (2, (1, 3)), (1, (2, 3))] 
+0

由於問題不明確,我認爲這可能不是完美的答案,這是最有可能的。這絕對不是'沒用'。 –