2

现在我正在使用 sys.stdin.readline() 但我很好奇使用 map(int,sys.stdin.readline()) 是否被认为很慢,或者执行类似“for item in sys.stdin”之类的事情是否有意义" 或其他东西(用于大量输入)。

4

1 回答 1

1

如果数据通过标准输入流式传输到您的程序,则从标准输入显式读取是您可以获得的“最快”。您的两种大纲方法都可以做到这一点。就个人而言,我更喜欢

for line in sys.stdin
    process(line)

成语,如果这适用于您的情况。在任何情况下,通过直接从标准输入读取,理论上您每秒可以处理千兆字节的数据,您的工作流程的瓶颈可能在其他地方。

您可以在此处创建的不同方法之间的主要区别在于,在一类情况下,您可以在处理之前将整个输入读入内存,而在另一类方法中,您可以在运行中逐段处理输入。根据您的整体输入的大小,这种差异可能相关或不相关。

于 2013-07-19T16:24:49.357 回答