競技プログラミングのためのPythonの標準入力まとめ
  • 2021/12/02
  • この記事は?

    自称競プロエンジョイ勢(灰色coder)の私は標準入力のやり方ですら忘れてしまうので,備忘録として書き残しておきます.

    競技プログラミングのためのPythonの標準入力まとめ

    最もかんたんな,1文字のみ文字列の場合

    例えば入力データが,

    N

    のとき(Nは数値とします),

    A = int(input())

    入力段階でint型にキャストしてあげると後々便利です.

    空白区切りの場合(それぞれの変数に代入するパターン)

    例えば入力データが,

    N M

    となっているときは(N,Mは数値とすします),

    N,M = map(int,input().split())

    map関数を使うと便利です.こうすることで,N,Mの変数にそれぞれ値を代入することができます.

    空白区切りの場合(リスト型パターン)

    例えば入力データが,

    N M L

    となっているときは,

    data = list(map(int,input().split()))

    listでキャストをしないと,mapオブジェクトになるので注意です.(多少扱いにくくなります)

    空白区切りがいくつ増えても対処できます.

    複数行の空白区切りの場合

    例えば入力データが,

    N M
    A11 A12 ... A1N
    ...
    AM1 AM2 ... AMN

    となっているとき,

    N, M = map(int, input().split())
    data = list(list(map(int, input().split())) for _ in range(M))

    このように対処します.

    可変長の単語空白区切り

    あまり使用頻度は高くないと思いますが,Pythonの便利な機能を紹介します.

    例えば入力データが,

    N a b1 b2 ... bN

    となっているとき,

    N, a, *b = map(int, input().split())

    このように対処します.

    *bと表記することで,b1 b2 ... bN の部分はすべてリストbに格納されます.

    PythonではNが必要ありませんね.

    プロフィール

    新着記事

  • おすすめ記事