2
比方說,我有以下列表:Python:我如何獲得子集的排列列表?
L = [1, 2, 3]
我想要得到以下的輸出:
[[1], [2],[3]]
[[1], [2, 3]]
[[2], [1, 3]]
[[3], [1, 2]]
除了我甚至不知道我是否正確措辭的問題。它基本上像非重複的排列組合?
比方說,我有以下列表:Python:我如何獲得子集的排列列表?
L = [1, 2, 3]
我想要得到以下的輸出:
[[1], [2],[3]]
[[1], [2, 3]]
[[2], [1, 3]]
[[3], [1, 2]]
除了我甚至不知道我是否正確措辭的問題。它基本上像非重複的排列組合?
這不是特別清楚我你是怎麼來到你的輸出(另一個例子或一個更好的描述可能會有所幫助),但答案可能在於itertools
,其中包含了大量的工具與排列組合的工作:
>>> data = [1, 2, 3]
>>> list(zip(reversed(data), itertools.combinations(data, 2)))
[(3, (1, 2)), (2, (1, 3)), (1, (2, 3))]
由於問題不明確,我認爲這可能不是完美的答案,這是最有可能的。這絕對不是'沒用'。 –
我相信他想要做的是得到循環表示法中的所有排列。 –
你在找什麼像powerset的東西? http://docs.python.org/2/library/itertools.html#recipes – jamylak
我想我可以編寫一個程序來生成你的確切輸出,但是我不知道如何得到你的輸出......你能解釋一下嗎它更多? – George