問題2-4: map でまとめて数に変える
map で4行を1行にする
前の問題で書いた「空のリストを用意して、for で1つずつ int に変えて append する」4行は、map を使うと1行で書けます。map(int, moji) は moji の中身をすべて int に通したものです。int のうしろに かっこを付けない(int() ではなく int)ことに気をつけてください。「この場で数に変える」のではなく、「数に変えるやり方そのもの」をわたしています。そのままではリストではないので、list で囲んでリストに戻します。
moji = input().split()
# 前の問題の書き方kazu = []for m in moji: kazu.append(int(m))print(kazu)
# map を使った書き方kazu = list(map(int, moji))print(kazu)実行結果
[3, 5, 2]
[3, 5, 2]上の実行結果は 3 5 2 を入力したときのものです。どちらの書き方でも同じリストができます。list で囲まずに kazu = map(int, moji) と書くと、len も添字も使えません。受け取る個数が決まっているなら a, b = map(int, input().split()) と変数に直接入れることもでき、このときは list で囲みません。
問題
前の問題とまったく同じ問題を、map を使って書き直してください。
整数がいくつか、1行に空白区切りで与えられます。数のリストを作って、1行目にそのリストをそのまま出力し、2行目にすべての和を出力してください。
入力
入力は1行で、整数が空白区切りで与えられます。
a1 a2 … an出力
2行に分けて、数のリスト、すべての和を順に出力してください。
制約
1 ≦ 整数の個数 ≦ 1001 ≦ それぞれの整数 ≦ 1000
入力例1
3 5 2出力例1
[3, 5, 2]
10入力例2
7出力例2
[7]
7コード(Python)
標準入力(「実行」で使われます)
実行結果
ここに実行結果が表示されます入力した内容と採点結果は、この端末のブラウザ内に自動保存されます。 進捗の確認と提出ファイルのダウンロードは画面右上の「進捗と提出」で行えます(提出のしかた)。