Python中R等价的组合函数(生成n个元素的所有组合)

时间:2018-03-31 09:27:08

标签: python r combinations

R中的函数combn(x,m)生成一次取m的元素x的所有组合。例如,

t(combn(5,2))
      [,1] [,2]
 [1,]    1    2
 [2,]    1    3
 [3,]    1    4
 [4,]    1    5
 [5,]    2    3
 [6,]    2    4
 [7,]    2    5
 [8,]    3    4
 [9,]    3    5
[10,]    4    5

如何在python中获得相同的结果?我知道scipy.misc.comb只给出了结果而不是列表,我也读了this article这看起来不同,并且首先需要一个给定的列表而不仅仅是两个整数。

1 个答案:

答案 0 :(得分:2)

itertools.combinations(iterable, r)

这会生成r个长度元组的可迭代。如果您想将它作为列表,那么您可以看到所有内容:

list(itertools.combinations(range(1,6), 2))
# [(1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)]