質問: [input() for i in range(6)] print(s) ``` とりあえずこんな感じで、リストに入れて値を取得しようとしてみました。 ``` ['5', '25 10', '10 23', '20 15', '70 70', '10 30'] ``` するとこんな感じで出ました。 ここでinput1行目の 20 10 10 が リストに入らないのはなぜでしょうか。 rangeの中の6は適当に入れただけで、本当はinput()に入力される2行目の1桁の数字分だけ行を取得したいです。 **paiza learningの方はとっくに期限切れなので、これからの勉強のために複数行取得の方法が知りたいです!**
回答: `input()`は、標準入力から1行受け取る組み込み関数です。1行目は最初の`input_line = input()`で受け取られています。 【以下修正・追記済み】 おそらく1行目も問題を解くのに使うと思うので、これはそのまま受け取っておきましょう。`split()`を使ってリストにし、さらに`map`などを使ってリスト内のそれぞれの数値を`int`型に変換するという方法で、一気に`[20, 10, 10]`として取得できます。 この取得方法は競技プログラミングでよく使います。wakameさんが紹介されているページを参考にしたうえで、python3での`map`の使い方を学習されるとよいと思います。 (他にも、リスト内包を使う方法もあります。こちらの方がmapより読みやすいという方も多いので、学習してみてください) 2行目はもっと単純です。数値をひとつ受け取るだけなので、普通に`input()`したものを`int`型に変換するだけです。 3行目以降は、for文などを使って1行目と同様の処理をN回繰り返せば、各行をそれぞれ`[25, 10]`などのように受取れます。 paizaのスキルチェックですので、具体的なコードの提示は控えますが、 競技プログラミング向けの標準入力を扱う方法はいろいろ情報がありますので、ぜひ調べてみてください。