【发布时间】:2019-01-20 03:27:42
【问题描述】:
如何打印第 n 行输出“a”?我尝试切片'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 1 1。我应该改组函数“move”吗?
【问题讨论】:
-
您是否尝试过将输出保存在列表中并从中打印所需的位置。
-
@manasdash 我将其称为 python 中的反模式。只需
yield让消费者决定 -
感谢@user633183 的建议
-
@user633183:我同意
yield可能最适合生产代码,但这对我来说不像生产代码。对于 OP 和将来查看此问题的人们,我认为简洁和易于理解比性能和程序架构最佳实践更重要。 -
@lehiester 这不是性能问题;这是一个能够以除
printing 之外的任何方式使用结果的问题......