質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • Python 3.x

    9822questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

paizaのハッカソンで遊んでて分からない所あったので正解と解説下さいオナシャス

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 428

alcot

score 6

 前提・実現したいこと

paizaのゲームで遊んでいるのですが色々なサイトを見ても分かりません。
エラーメッセージはmapだからintじゃないと言ってるんだと思いますが
標準入力から受け取った値をintにするにはこうするべきと書いてました
https://qiita.com/odashun1015/items/57945df5dc974dc7b80a
やりたい事は要するに100マス計算の横がcで、縦がrで、どの位縦と横が長いかがNです
それが標準入力されるので100マス計算の様に出力しましょうという事です
期待する値

例1
入力
3
1 2 3
4 6 8

出力
5 6 7
7 8 9
9 10 11

例2
入力
5
8 7 6 5 4
1 2 3 4 5

出力
9 8 7 6 5
10 9 8 7 6
11 10 9 8 7
12 11 10 9 8
13 12 11 10 9
入力される値
入力は標準入力にて以下のフォーマットで与えられます。

N
c_1 c_2 ... c_N
r_1 r_2 ... r_N

・1 行目に、表の行と列の数を表す整数 N が与えられます。
・2 行目に、N 個の整数が半角スペース区切りで与えられます。
この i 番目 (1 ≦ i ≦ N) の整数 c_i は i 列目に書かれている整数を表します。
・3 行目に、N 個の整数が半角スペース区切りで与えられます。
この i 番目 (1 ≦ i ≦ N) の整数 r_i は i 行目に書かれている整数を表します。
・入力は合計 3 行であり、 最終行の末尾に改行が1つ入ります。

条件
すべてのテストケースにおいて、以下の条件をみたします。

・1 ≦ N ≦ 50
・各 i (1 ≦ i ≦ N) に対し、以下を満たします
・0 ≦ c_i ≦ 1,000
・0 ≦ r_i ≦ 1,000

 発生している問題・エラーメッセージ

エラーメッセージ
Traceback (most recent call last):
File "Main.py", line 8, in <module>
for i in range(input_lines):
TypeError: 'map' object cannot be interpreted as an integer

 該当のソースコード

使用している言語python
input_lines = map(int,input().split())
input_c=map(int,input().split())
input_r=map(int,input().split())
for i in range(input_lines):
print(input_c+input_r[i])

 試したこと

これもしてみました
input_lines = int(input())
input_c=list(map(int,input().split()))
input_r=list(map(int,input().split()))
for i in range(input_lines):
A=map(lambda x: x+input_r[i],input_c)
print(A)

出力結果<map object at 0x7fecbb202828>

 補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • LouiS0616

    2018/01/30 22:19

    リンク先『複数行に数値を入力する場合』を参考にすれば解決するんじゃないですかね。

    キャンセル

  • 退会済みユーザー

    2018/01/30 23:19

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 2

+4

mapを正しく使うとこうなります。

from itertools import repeat
from operator import add

input()  # skip
seed = [*map(int, input().split())]
for r in map(int, input().split()):
    print(*map(add, seed, repeat(r)))

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/31 00:35

    考えてみればmapオブジェクトもアンパックできましたね。すっかり頭から抜けてました(^ ^;

    キャンセル

  • 2018/01/31 00:40

    すいません。namniumさんが書いた内容を正しくないという意図は全くなかったです。もしも誤解を招いていたら申し訳ありません。ただただ、mapをいかにより良く使うかだけを考えて一番正しいと思った方法を書いただけです。重ねて申し訳ありません。

    キャンセル

  • 2018/01/31 00:51

    いえいえ純粋に勉強になるいいコードだと思っただけです!
    いいコードは評価されるべき、当然です。

    コメントした意図は純粋に質問者様に「こちらの回答の方がいいですよ」というのを伝えるためです。

    こちらこそ勘違いさせてしまったのかも…すみません(^ ^;

    キャンセル

  • 2018/01/31 00:52

    誤解がなかったのであれば良かったです。ありがとうございます。お騒がせしました。

    キャンセル

checkベストアンサー

0

ハッカソンはやったことないんですけど、paizaの規約違反に当たらないでしょうか?

まぁ、そこには目をつぶるとして、(次やったら…わかりますね?)

2つ目のコード、効率云々は抜きとすると、すんごく惜しいところまで来ています。

大ヒントとしては、mapオブジェクトなのがいけないわけですから、別な型に変換(キャスト)すればいいわけです。

コード中で使用しておられるので、ご存知かとは思いますが、pythonにおいてキャストは

型名(キャスト対象)

ですね。

そしてもう一つ大ヒント。

print関数にlistオブジェクトを渡すといい感じで出力してくれます。

ここまで言ってしまったのでおまけもつけてしまいましょう!!

print(*listオブジェクト)

このように書くといいことあるかも…?

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/31 01:09

    ありがとうございます!おかげさまで解けました
    *正解コード
    input_lines = int(input())
    input_c=list(map(int,input().split()))
    input_r=list(map(int,input().split()))
    for i in range(input_lines):
    A=list(map(lambda x: x+input_r[i],input_c))
    print(' '.join(map(str, A)))
    あと規約違反ではないかとのコメントを頂きしっかり読み直させて頂きました。
    するとコンテンツ別に違反が違っておりオンラインゲームサービスで回答を求める事は規約違反では無いそうです。
    今後もなるべく自分で解く努力はしますがどうしても分からない場合はこうしてヒントを求めます。

    キャンセル

  • 2018/01/31 01:14

    まぁ、規約違反ではないにしろ今回みたいな質問の仕方をすると低評価の嵐になってしまうので、ピンポイントにわからないことだけを聞くことを心がけるといいと思います。

    ヒントを求めるのは全然いいことだと思いますよ。

    キャンセル

同じタグがついた質問を見る

  • Python 3.x

    9822questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。