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

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

ただいまの
回答率

90.84%

  • Python

    6355questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

python 2つのリストの合計を出力する関数の作り方

解決済

回答 3

投稿 編集

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

cks104

score 3

 前提・実現したいこと

Q. 2つのリストの合計を出力する関数を作りましょう
以下のv1とv2をそれぞれの要素を合計して新しいリストをforループを使って、作成してください。 期待する結果は、[3,7, 11, 15, 19] です。

v1 = [2, 4 , 6, 8, 10]
v2 = [1, 3,  5, 7,  9]

回答:def list_add(v1, v2):
ここからの回答が分かりません。

for文を入れたりしてみましたが、期待する結果を導き出すことができませんでした。
pythonに詳しい方教えていただけませんか?
よろしくお願いいたします。

[以下、追記]
昨日pythonを始めたばかりで勉強が足りずに大変恐縮ですが、
試してみたコードを公開させていただきます。

v1=[2,4,6,8,10]
v2=[1,3,5,7,9]

def list_add(v1, v2):
for i in v1:
b= i + range(1,9,2)
print(b)

実行すると何も反応が返ってこない状況です。
インデントは、defとfor以下に設定して実行してみました。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • namnium1125

    2018/06/10 16:09 編集

    ご自身で取り組まれたコードはなるべく公開していただけるとありがたいです。m(_ _)m

    キャンセル

  • cks104

    2018/06/10 16:34

    コード公開がなく、大変失礼いたしました。追記させていただきましたので、もしお時間があればよろしくお願いいたします。

    キャンセル

回答 3

checkベストアンサー

+2

Stars1024様の回答と被りますが、いただいたコードをもとにした場合はこうでしょうか?

v1=[2,4,6,8,10]
v2=[1,3,5,7,9]

def list_add(v1, v2):
    b = []
    for i in range(len(v1)):
        b.append(v1[i] + v2[i])

    return b

print(list_add(v1, v2))

bをリストとして初期化する必要があります。
リストに要素を追加するメソッドは.appendですから、これを利用して新規作成したbに要素を追加していきます。

for文のところの解説が必要でしたら返信ください。

おまけ。numpyを使うと楽に書けます。

import numpy as np

def list_add(v1, v2):
    return list(np.array(v1)+np.array(v2))

ただし今回は上記2つのコードとも、要素数の違いにより起きるエラーは想定していません。

それと、コードは ``` (バッククォート3つ)で囲むと、この回答のようにインデントをきれいに表現できます。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/06/10 16:58 編集

    appendを使えば新たにv3を初期化する必要がなくなりますね。勉強になりました。
    ありがとうございます。

    キャンセル

  • 2018/06/10 17:01

    でも速度面ではあんまりいいコードではないです。(^ ^;

    私もリスト内方表記を利用したくなりましたが、とりあえず普通な書き方をした、という感じです。

    キャンセル

  • 2018/06/10 17:42

    ご回答いただき、本当にありがとうございました!!
    無事に問題解決することができました。
    numpyやバッククォートはまだまだ使いこなせないですが、
    勉強を続けていきたいと思います。

    キャンセル

+2

こんにちは
質問欄に書いてあるとおり、関数def list_add(v1, v2):を使ってみました。

def list_add(v1,v2):
    v3 = [0 for _ in range(len(v1))] #結果出力を[0,0,0,0,0]と初期化
    for i in range(len(v1)):
        v3[i] = v1[i] + v2[i]
    return v3

v1 = [2, 4 , 6, 8, 10]
v2 = [1, 3,  5, 7,  9] 

print(list_add(v1,v2))

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/06/10 17:52

    早急にご回答いただき、本当にありがとうございました!!
    無事に期待する結果を得られることができました。
    結果出力を初期化するところはまだまだ理解できませんが、
    これからも勉強を続けていきたいと思います。

    キャンセル

+1

 map

return list(map(lambda x, y: x + y, v1, v2))

 zip

return [x + y for x, y in zip(v1, v2)]

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/06/10 17:46

    教えていただき、ありがとうございました!
    昨日、初めてのpythonの授業を受けて分からないことばかりのため、
    ご回答いただいたコードも少しづつ勉強していきたいと思います。

    キャンセル

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

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Python の基本的な文法(for 文)について

    Python の初心者向けのドキュメントを読んでいて、わからないところがあったので質問させていただきます。ちなみにそれは、まだ通読していません。 読んでいたドキュメントの中に、サ

  • 受付中

    list型を継承したクラスについて

    # -*- coding: utf-8 -*-  class TestExtends(list):     def __init__(self):         list._

  • 解決済

    文字列を空白で分割してリストにしたい

    よろしくお願いいたします. 文字列を空白で分割してリストにしたいのですが, ダブルクオートやシングルクオートで囲まれている場合は分割しないようにしたいです. つまり, str =

  • 受付中

    pythonでのreadとreadlinesの書き換え

    pythonにてあるテキストファイルを読み込む場合,readとreadlinesでどう書き換えればいいかわからず困っております. テキストファイル例として 0.343 0

  • 解決済

    python 文字列を判定する方法

    何らかのstr型が連続して格納されている配列(例['100'],['.'],['abc'])の各要素を判定し、数値ならint型に変換後次要素の判定に移る、数値ではないのであればfa

  • 解決済

    Python 内包表記

    jupyter notebookでとある数列を求めるプログラムを作りました。 for文の中にあるfor文(for j in range(compare.size + 1)...)を

  • 解決済

    Python 3.x 辞書のキー値によって変換する場合の高速化

    Pythonにて、辞書(dict({key,value})を使って、list型の全要素をValue値に変換する際の、 高速化が可能かどうかをご教授いただきたいです。 dict1

  • 解決済

    構造の異なる辞書をソートしたい

    構造の異なる辞書をソートしたい。 辞書dfには df = [{"A":{"A1":{"a1":100,"b1":200,"c1":300}}},{"B":{"B1":{"a2"

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

  • Python

    6355questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。