Pythonの2次元配列に格納した文字列を数値に置換する方法についてメモ。
たとえば標準入力で以下のように数字が渡される。
3
1 2
3 4
5 6
1行目は2行目移行の標準入力の繰り返し回数。
で、2行目移行の数値は2次元配列に格納したい。
arr = []
n = int(input())
for i in range(n):
arr.append(input().split())
print(arr)
>>>[['1', '2'], ['3', '4'], ['5', '6']]
このときinput().split()で入力を受け取ると、文字列のリストとして入力される。
これをintに変換したい。
forで変換する場合
for i in range(len(arr)):
for j in range(len(arr[i])):
arr[i][j] = int(arr[i][j])
print(arr)
>>>[[1, 2], [3, 4], [5, 6]]
リスト内包表示で変換する場合
arr = [[int(x) for x in y] for y in arr]
print(arr)
>>>[[1, 2], [3, 4], [5, 6]]
おまけ:1次元配列にしちゃう場合
arr = [int(x) for y in arr for x in y]
print(arr)
>>>[1, 2, 3, 4, 5, 6]