正しい方法でまとめて出力する
リストにバッファーし、join して高速に出力します
「正しい方法でまとめて出力する」はCoddyKit上の無料Coding Interview Prepレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCoding Interview Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Coding Interview Prepコースには全4レッスンが含まれています。
出力も遅くなる
読み取りと同じように、書き出しも重要です。print()を何千回も呼び出すと、繰り返しフラッシュされ、ひそかに時間制限を消費します。
集めてから出力する
解決策は、まず答えをリストに集め、最後に1回の書き込みでまとめて出力することです。
out = []各答えを追加する
ループ内では、その場で出力する代わりにappendを使い、各結果をリストに追加します。
out.append(str(answer))文字列だけを扱う
joinはテキストを対象とするため、保存する前に数値を文字列へ変換するか、joinする時点で変換します。
out.append(str(x))1つのブロックに結合する
改行を使ってリストをjoinし、各答えがそれぞれの行に出力されるようにします。
result = "\n".join(out)すべてを一度に出力する
これで、1回のprint(result)ですべての答えをまとめて送れます。小さなprintを何度も呼ぶより、はるかに高速です。
print("\n".join(out))ジェネレーターでstrを省略する
その場で変換することもできます。generatorでstr()を呼び出し、別の手順を挟まずにjoinへ直接渡します。
print("\n".join(str(x) for x in out))空白区切りで出力する
値を1行に並べたい場合は、改行の代わりにスペースでjoinして、横に並べて出力します。
print(" ".join(map(str, row)))さらに高速にするならsys.stdout
最速の出力が必要なら、sys.stdout.writeで直接書き込みます。print()のフォーマット処理を省略できます。
import sys
sys.stdout.write(result)末尾の改行を忘れない
sys.stdout.writeは改行を追加しないため、ジャッジが改行を求める場合は自分で改行を追加します。
sys.stdout.write(result + "\n")少数のprintなら問題ない場合
1行か2行しか出力しないなら、通常のprint()で問題ありません。答えの数が多い場合だけまとめて出力しましょう。
確認問題
なぜ出力をバッファリングするのでしょうか?
まとめ:出力をまとめる
答えをリストにバッファリングし、1回のjoinとprintで出力する方法を学びました。高速な入力と同じ考え方を、出力側に適用したものです。🖨️
AI チューターと学ぶ Coding Interview Prep — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 90
- レッスン
- 360
よくある質問
「正しい方法でまとめて出力する」レッスンは無料ですか?
はい。「正しい方法でまとめて出力する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Coding Interview Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Coding Interview Prepコースには全4レッスンが含まれています。
「正しい方法でまとめて出力する」で何を学びますか?
リストにバッファーし、join して高速に出力します ブラウザで直接実行するハンズオンコードでCoding Interview Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Coding Interview Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCoding Interview Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「正しい方法でまとめて出力する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCoding Interview Prepレッスンでコードを書いて実行できますか?
はい。すべてのCoding Interview Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- input() と sys.stdin の対決
- 1 行に並んだ複数の数値を解析する
- 正しい方法でまとめて出力する
- N 行の読み込みとエッジケース