如何打印输出'a'的第n行?我尝试切片“ a”,但不起作用。我似乎也无法通过“ a”进行迭代。
A = [1,2,3]
B = []
C = []
def move(n, pegA, pegB, pegC):
if n > 0:
move(n - 1, pegA, pegC, pegB)
target.append(pegA.pop())
print(len(A), len(B), len(C))
move(n - 1, pegC, pegB, pegA)
a = move(3, A, C, B)
a返回以下输出:
2 0 1
1 1 1
1 2 0
0 2 1
1 1 1
1 0 2
0 0 3
我希望能够打印出第二行,即1 11。我应该改组函数'move'吗?
答案 0 :(得分:1)
move
的结构方式不会保留已打印输出的任何记录,因此很难恢复。如果需要按索引查找输出行,则可以返回每行输出的列表,如下所示:
def move(n, pegA, pegB, pegC, output_lines=None):
if output_lines is None:
output_lines = []
if n > 0:
move(n - 1, pegA, pegC, pegB, output_lines)
target.append(source.pop())
output_lines.append('%d %d %d' % (len(A), len(B), len(C)))
move(n - 1, pegC, pegB, pegA, output_lines)
return output_lines
a = move(3, A, C, B)
# print all lines of output
print('\n'.join(a))
# print 2nd line
print(a[1])