前提として
まず、以下のような二次元リストがあります。
python
1data_1 = [1, 2, 3] 2data_2 = [[-5, -1, -1], [3, 3, -1], [-3, -3, 6]]
実現したいこと
上手に説明できないのですが、上記のリストを用いて下記のような計算を行いたいです。
python
1data_1[0]*data_2[0][0] + data_1[0]*data_2[0][1] + data_1[0]*data_2[0][2] 2=1*(-5) + 1*(-1) + 1*(-1) = -7 3data_1[1]*data_2[0][0] + data_1[1]*data_2[0][1] + data_1[1]*data_2[0][2] 4=2*(-5) + 2*(-1) + 2*(-1) = -14 5data_1[2]*data_2[0][0] + data_1[2]*data_2[0][1] + data_1[2]*data_2[0][2] 6=3*(-5) + 3*(-1) + 3*(-1) = -21 7data_1[0]*data_2[1][0] + data_1[0]*data_2[1][1] + data_1[0]*data_2[1][2] 8=1*3 + 1*3 + 1*(-1) = 5 9data_1[1]*data_2[1][0] + data_1[1]*data_2[1][1] + data_1[1]*data_2[1][2] 10=2*3 + 2*3 + 2*(-1) = 10 11data_1[2]*data_2[1][0] + data_1[2]*data_2[1][1] + data_1[2]*data_2[1][2] 12=3*3 + 3*3 + 3*(-1) = 15 13data_1[0]*data_2[2][0] + data_1[0]*data_2[2][1] + data_1[0]*data_2[2][2] 14=1*(-3) + 1*(-3) + 1*6 = 0 15data_1[1]*data_2[2][0] + data_1[1]*data_2[2][1] + data_1[1]*data_2[2][2] 16=2*(-3) + 2*(-3) + 2*6 = 0 17data_1[2]*data_2[2][0] + data_1[2]*data_2[2][1] + data_1[2]*data_2[2][2] 18=3*(-3) + 3*(-3) + 3*6 = 0
出力結果としては、
python
1data_3 = [[-7, -14, -21],[5, 10, 15],[0, 0, 0]]
という風に得たいです。
実践したこと
python
1data_1 = [1, 2, 3] 2data_2 = [[-5, -1, -1], [3, 3, -1], [-3, -3, 6]] 3 4datann = 0 5Data = [] 6 7for data in range(len(data_1)): 8 for datan in range(len(data_2)): 9 datann += data_1[data]*data_2[datan] 10 Data.append(datann) 11 12print(Data) 13#出力結果 14#datann += data_1[data]*data_2[datan] 15#TypeError: unsupported operand type(s) for +=: 'int' and 'list'
出力結果が”TypeError: unsupported operand type(s) for +=: 'int' and 'list'”となってしまいました。
おそらく、data_2は二次元リストなのにdata_2[datan]としているのがエラーの原因だと考えられます。
そこで、以下のようにコードを書き換えました。
python
1data_1 = [1, 2, 3] 2data_2 = [[-5, -1, -1], [3, 3, -1], [-3, -3, 6]] 3 4datann = 0 5Data = [] 6 7for data in range(len(data_1)): 8 for datan in range(len(data_2)): 9 datann += data_1[data]*data_2[datan][datan] 10 Data.append(datann) 11 12print(Data) 13#出力結果 14#[-5, -2, 4, -6, 0, 12, -3, 6, 24]
このようになり、エラーは表示されなくなったのですが得たい結果と違うものが出てしまってここで行き詰っています。よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/06/22 01:01
退会済みユーザー
2022/06/22 01:42
2022/06/22 02:20
退会済みユーザー
2022/06/22 23:44
2022/06/23 00:17
退会済みユーザー
2022/06/23 05:30