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 に答える