如何在python变量中存储python控制台输出

时间:2019-04-14 18:12:45

标签: python-3.x

下面是我的代码:

def combinationUtil(arr, n, r,index, data, i): 
    if(index == r): 
      for j in range(r): 
        print(data[j], end = " ") 
      print(" ") 
      return
 if(i >= n): 
    return
data[index] = arr[i] 
combinationUtil(arr, n, r, index + 1, data, i + 1) 
combinationUtil(arr, n, r, index, data, i + 1) 
def printcombination(arr, n, r): 
    data = list(range(r)) 
    combinationUtil(arr, n, r, 0, data, 0) 
 var = []
 pp = 5
 r = 3
 arr = []
for i in range(1, pp+1):
    arr.append(i)
 n = len(arr)

 printcombination(arr, n, r)

它给了我这个输出:

1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5

我想将此输出另存为python中的变量

1 个答案:

答案 0 :(得分:0)

您有一个组合实用程序例程,可以产生感兴趣的输出。

如果您正在呼叫其他人的例程,则可能需要分配 sys.stdoutio.StringIO()来捕获输出。

但就目前而言,您可以控制源代码, 这样您就可以轻松替换

      for j in range(r):
          print(data[j], end=' ')
      print(' ')

具有以下更方便的界面:

      yield [data[j] for j in range(r)]

然后进行迭代,例如:

for row in combinationUtil(arr, n, r, 0, list(range(r)), 0):
    print(row)

Cf itertools