Python
python3

競プロ等におけるpython3の標準入力

しょっちゅうわからなくなるのでチートシート作成。
必要を感じたら追加します。


入力:改行型int

1
2
1
6
1

コード

a = [int(input()) for i in range(5)]

※行数が不明な場合

import sys
a = []
for l in sys.stdin:
    a.append(int(l))

print(a)

[1, 2, 1, 6, 1]

入力:改行型文字列

aa
ii
uu
ee
oo

コード

a = [input() for i in range(5)]

print(a)

[aa, ii, uu, ee, oo]

入力:連続文字int

10 20 00

コード

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

print(a)

[10, 20, 0]

入力:連続文字列

aa ii uu

コード

a = input().split()

print(a)

[10, 20, 0]

入力:複数行2数値

1 2
3 4
5 6
7 8
9 0

コード

x = []
y = []
for i in range(5):
    x1,y1=[int(i) for i in input().split()]
    x.append(x1)
    y.append(y1)

print(x)
print(y)
print(x[1]+y[1])

[1, 3, 5, 7, 9]
[2, 4, 6, 8, 0]
7

入力:複数行複合。リスト一つで処理。

1 a
3 b
5 c
7 d
9 e

コード

list = []
for i in range(5):
    a,b=input().split()
    list.append((int(a), b))

print(list[0][0]+list[1][0])
print(list[1][1])

4
b

入力:行列

1 2 3 4
5 6 7 8
1 1 1 1

コード

a = [input().split() for l in range(3)]

print(a)

[['1', '2', '3', '4'], ['5', '6', '7', '8'], ['1', '1', '1', '1']]

入力:単数値。桁ごとに分割したい。

12345678

コード

s = input()
a = [int(c) for c in s]

print(a[1])

2

入力:複数行数値。ここから正方形の行列を作成

123
456
789

コード

import sys
a = [[int(c) for c in l.strip()] for l in sys.stdin]

print(a)
print(a[1][1])

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
5