参见英文答案 > Getting the subsets of a set in Python 7个
我该如何生成
[(0,), (1,), (2,), (0,1), (0,2), (1,2), (0,1,2)]
以编程方式(即,不用手写出所有东西)?也就是说,元组(0,1,2)的所有非空元组的列表.
(注意,这不是要求子集而是要求子数.)
解决方法:
>>> from itertools import combinations
>>> t = (0, 1, 2)
>>> print [subset for r in range(1,4) for subset in itertools.combinations(t,r)]
[(0,), (1,), (2,), (0, 1), (0, 2), (1, 2), (0, 1, 2)]
Itertools是一个强大的资源.你应该看看documentation