我想找到所有数字的组合{0,1,2,3,4},并将它们打印在一个表中,第一列是订单号,第二列是特定的组合。我想要的输出应该采用以下形式:
1(0,(
2(1,(
6(0,1(
我尝试了以下代码
import numpy as np
import itertools
rows=list(range(5))
combrows=[]
for k in range(1,5): #the number of rows k takes values from 1 to 5
for combo in itertools.combinations(rows,k):
combrows.append(combo)
ind=1
store=[]
for i in combrows:
store.append([[ind],[i]])
ind=ind+1
print(store)
但是生成的表格是一条水平线,而不是一个有两列的二维矩形表格。我该怎么解决这个问题?谢谢
这是一个非常简单的解决方案:
from itertools import combinations
numbers = list(range(5))
lst = []
for l in (combinations(numbers, r) for r in range(1, 5)):
lst.extend(l)
for i, j in enumerate(lst):
print(i+1, j)
在线试用!
enumerate
自动生成行号。