前提
同じ型(行数・列数がそれぞれ同じ)の2つの行列 𝑝 と 𝑞 を表す,2つの2重リストを受け取って,その行列としての和 𝑝+𝑞 を表す2重リストを返す関数 mat_plus(p, q) を実装したいです。
実現したいこと
上と同じなのですが同じ型(行数・列数がそれぞれ同じ)の2つの行列 𝑝 と 𝑞 を表す,2つの2重リストを受け取って,その行列としての和 𝑝+𝑞 を表す2重リストを返す関数 mat_plus(p, q) を実装したいです。
この関数を定義した後に
print(mat_plus([[1, 2], [3, 4]], [[5, 6], [7, 8]]))
の結果を表示させたいです。
発生している問題・エラーメッセージ
TypeError Traceback (most recent call last) /var/folders/wh/7dflns7560x3l672dh_j_4wh0000gn/T/ipykernel_20954/595380092.py in <module> ----> 1 print(mat_plus([[1, 2], 2 [3, 4]], 3 [[5, 6], 4 [7, 8]])) 5 /var/folders/wh/7dflns7560x3l672dh_j_4wh0000gn/T/ipykernel_20954/840526713.py in mat_plus(p, q) 6 def mat_plus(p, q): 7 m = [] ----> 8 for i in range(p): 9 r = [] 10 for j in range(p): TypeError: 'list' object cannot be interpreted as an integer
このように表示されてしまい、計算結果を得ることができません。
該当のソースコード
def mat_plus(p, q): m = [] for i in range(p): r = [] for j in range(p): r.append(i+1) m1=[m.append(r)] z = [] for i in range(p): r = [] for j in range(p): r.append(i+1) z1=[z.append(r)] return [[m1] + [z1]]
これを実装した後に
print(mat_plus([[1, 2], [3, 4]], [[5, 6], [7, 8]]))
これが求められるかテストしました。求めることができませんでした。
試したこと
2つの行列をリストとして表してから、足そうと思い上のコードを書いたのですがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。