1
我想創建一個包含python子列表的列表;就像一個集合的正確子集。例如,從列表中創建子列表
A = [1, 2, 3, 4]
Desired List = [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4], [1, 2, 3], [1, 2, 4], [2, 3, 4]]
謝謝!
我想創建一個包含python子列表的列表;就像一個集合的正確子集。例如,從列表中創建子列表
A = [1, 2, 3, 4]
Desired List = [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4], [1, 2, 3], [1, 2, 4], [2, 3, 4]]
謝謝!
因爲它似乎你只想大小2個或更多的子集:
from itertools import combinations, chain
A = range(1, 5)
list(chain(*(combinations(A, r) for r in range(2, len(A)))))
# [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4), (1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
如果你希望所有的真子集,只是改變range(2, len(A))
到range(len(A))
。
它看起來像你想從列表中獲得所有的組合。嘗試使用itertools.combinations
desired_list = itertools.combinations(A, 2)
爲什麼你沒有任何大小爲0或1的子集?這是一個「我想做這個事情」的問題,還是一個「我想通過做這件事來學習」的問題? – user2357112 2015-04-02 22:04:35