質問: [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以下に設定して実行してみました。
回答: 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つ)で囲むと、この回答のようにインデントをきれいに表現できます。