回答編集履歴

1 キャスト部分を追記

tachikoma

tachikoma score 3523

2018/07/26 14:12  投稿

```Python
with open("win.txt", 'r') as f:
   lines = list(f.readlines())
   # lines = list(f.readlines())
   lines = f.read().split("\n")
```
----
一行に2つ以上の数字があることを念頭に、各数字をintにキャストする方法は次の通りです。intにキャストできない文字が含まれているとエラーになります。
愚直に二重ループを書く場合。
```Python
with open("tmp.txt") as f:
   lines = f.read().split("\n") # 改行コードごとに分割
numbers = []
for line in lines: # 一行ごとに処理する
   tmp =[]
   for n in line: # 一行に含まれる文字1つずつに対して処理する
       tmp.append( int(n) )
   numbers.append( tmp )
```
難しく書くと次のように1行になります。
```Python
with open("tmp.txt") as f:
   lines = f.read().split("\n")
numbers = [list(map(int, list(line))) for line in lines] # 二重ループと同じ結果
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る