プログラマーの卵向け(?)か,「2次元配列の文字列を数値に置換」という記事があった
> 1行目は2行目移行の標準入力の繰り返し回数。
> で、2行目移行の数値は2次元配列に格納したい。
例
3
1 2
3 4
5 6
結果として [[1, 2], [3, 4], [5, 6]] を期待する。
例によって(?)二次元配列と書いてあるが,厳密にいえば,二重リストだね。
これに対して,以下のようなプログラムが示されている。
arr = []
n = int(input())
for i in range(n):
arr.append(input().split())
for i in range(len(arr)):
for j in range(len(arr[i])):
arr[i][j] = int(arr[i][j])
最後の 3 行を以下の 1 行で置き換えることもできるよ
arr = [[int(x) for x in y] for y in arr]
とも書いてある。
とても,お手本とするプログラムとはいえない。しかも,そのページはなんか IT 関連の会社が作成しているようなんだけど。
========
短いプログラムは,それだけで読みやすい。わかりやすい。
ということで,以下のようなプログラムを書く。
n = int(input())
arr = [0] * n
for i in range(n):
arr[i] = list(map(int, input().split()))
だけでよい。
print(arr) # [[1, 2], [3, 4], [5, 6]]
列数が大きくなってもプログラムには何の修正も必要ない