我想要像這樣的列表:如何在Python3中創建組合列表?
seq = [1,2,3]
\# implementation
print(result) \# [[1], [1,2], [1,2,3], [2], [2,3], [3]]
我想要像這樣的列表:如何在Python3中創建組合列表?
seq = [1,2,3]
\# implementation
print(result) \# [[1], [1,2], [1,2,3], [2], [2,3], [3]]
您可以使用itertools組合:https://docs.python.org/3/library/itertools.html#itertools.combinations
你可以看看這個answer瞭解更多詳情
我知道itertools,但我不想製作不連續的元素,如[1,3]。 –
最後我能找到一個解決方案通過自己:
N = 3
print([list(range(i, j)) for i in range(1,N+2) for j in range(i+1,N+2)])
,或者
N = 3
lis = [list(range(i + 1, j + 1)) for (i, j) in itertools.combinations(list(range(N + 1)), 2)]
print(lis)
謝謝!
看看這個。 http://stackoverflow.com/questions/1617699/how-to-obtain-all-subsequence-combinations-of-a-string-in-java-or-c-etc問題是針對Java,但第一個答覆也在python中顯示算法。你想要的是權力。 – molig
那麼,我必須做出一個原始的powerset函數來消除像powerset中的[1,3]這樣的不連續元素嗎? –