R中的函数combn(x,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这似乎不同,它首先需要一个给定的列表,而不仅仅是两个整数。

最佳答案

itertools.combinations(iterable, r)

这将生成一个r长度元组的iterable。如果你想要它作为一个列表,那么你可以看到一切:
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)]

08-24 12:08