オンラインの問題などでよくあるパターンなのですが、
1行目にN=その後にあるデータの行数
2行目以降は空白区切りで複数個のデータを含む行がN行など
Python3
1sample = [list(map(int, input().split())) for i in range(N)]
例えば入力データが全て整数であれば上記のように**map(int, input().split())**を使えば良いのですが、
文字と数値が混在してる場合このままで1度に入力処理させると文字を含むので当然エラーとなります。
####知りたいこと
複数行データに文字と数値が混在した場合でも文字と数値として1度に入力することが可能なのか?
そのような方法が無いという回答でも構いません。
ヒントやアドバイスあればご教示頂けると助かります。
####やったこと
プログラミング(競プロ)に便利な Python3 用法集 入力編
上記サイトを参考にしてもやはり複数行で文字と数値の混在パターンのサンプルコードはありませんでした。
現状は一旦文字列としてリストに取り込み、その後for文で全要素をint()やfloat()で処理して上書きしています。
入力データ
3
a 1.23
b 2.34
c 3.45
Python3
1N = int(input().rstrip()) 2src = [list(input().split()) for _ in range(N)] 3print(src) 4for row in src: 5 row[1] = float(row[1]) 6print(src)
出力(リストの中身確認)
[['a', '1.23'], ['b', '2.34'], ['c', '3.45']]
[['a', 1.23], ['b', 2.34], ['c', 3.45]]
####環境
Python 3.7.0 or 3.6.6

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/25 08:44