如何打印函数输出的第n行

2024-05-21 04:20:21 发布

您现在位置:Python中文网/ 问答频道 /正文

如何打印输出“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

我想打印第二行,也就是11。我应该重新构造函数“move”吗?你知道吗


Tags: targetmovelenifdefpopprintappend
1条回答
网友
1楼 · 发布于 2024-05-21 04:20:21

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

相关问题 更多 >