为什么我不能连续两次在sys.stdin中做循环? (Python)

2024-04-25 23:17:54 发布

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

首先,我需要得到行数,所以我要:

for line in sys.stdin:
    c = c + 1
print("Number of lines:" + str(c))
A = [[] for x in range(0,c)]
print(A)

但是我需要再次输入一个for line in sys.stdin:,因为我需要读取输入。在

它不工作,第二次它几乎和输入一样被消耗,现在是空的。在


Tags: ofinnumberforstdinsyslinerange
2条回答

如果要多次访问输入,则必须保存输入。第一个for循环消耗流,这是不可查找的。在

lines = sys.stdin.readlines()

如果要处理每一行,您可能会喜欢以下内容:

^{pr2}$

您也可以使用enumerate来保持计数:

for cnt, line in enumerate(sys.stdin, start=1):
    foo(line)

print('Saw {} lines'.format(cnt))

将stdin输入保存到变量中:

lines = sys.stdin.readlines()

现在您可以随意循环lines变量。在

如果您只是计算行数,那么根本不需要循环;您可以说c = len(lines)。在

相关问题 更多 >