从stdin读取10万行太慢了

时间:2017-12-25 11:29:32

标签: python performance io stdin

我正在编写一个程序,我需要从sys.stdin中进行多达100,000行整数对的计算。我的整个程序,包括读取此输入并对每个输入行的整数执行计算,最多需要1秒钟。问题是,只需经过所有输入行就需要超过1秒!在100,000行的情况下,大约需要10秒。 我的问题是,这个数量的线是否会出现这种表现?

输入格式为:

100000 5 100000
72324 563
56487 2252
866 19750
65532 69349
96171 56840
70287 14094
76381 14722
48359 38831
74431 12611
29994 66230
92169 20726
39565 38429
59416 2360
45470 40781
...

第一行最右边的整数表示要到达的行数。 要阅读此输入,请使用以下代码:

import time
from sys import stdin, stderr

def read():

    row = stdin.readline().split()
    n, k, q = int(row[0]), int(row[1]), int(row[2])

    start = time.clock()

    for i in range(q):
        line = stdin.readline().split()
        # Do some calculation on the integers of this line...
    end = time.clock()
    print("Reading time: " + str(end-start))

read()

我在这里遗漏了什么吗? 1秒的限制是由于这是计算K-ary树中两个节点之间的Q个距离的学校项目。 提前谢谢。

0 个答案:

没有答案