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)]