ハイスコアランキング
score = [
[10, 12, 3, 4],
[20, 42, 42, 45],
[23, 45, 32, 45],
[34, 23, 55, 54],
[65, 99, 34, 56]
]
data のリストの中身を以下のようなルールで計算したい
まず、1行目のリストにある項数を、2行目以下のリストにあるそれぞれの項数に掛ける
そして、掛け合わした数の和を求めたい
コード score = [ [10, 12, 3, 4], [20, 42, 42, 45], [23, 45, 32, 45], [34, 23, 55, 54], [65, 99, 34, 56] ] 例えば、1行目と2行目の掛け算はそれぞれ a = score[0][0] * score[1][0] b = score[0][1] * score[1][1] c = score[0][2] * score[1][2] d = score[0][3] * score[1][3] そして、すべての和を求めたいので total = a+b+c+d となる。
これを1行目と3行目、 1行目と4行目と最後まで繰り返したい。
コード a = score[0][0] * score[2][0] b = score[0][1] * score[2][1] c = score[0][2] * score[2][2] d = score[0][3] * score[2][3] a = score[0][0] * score[3][0] b = score[0][1] * score[3][1] c = score[0][2] * score[3][2] d = score[0][3] * score[3][3] a = score[0][0] * score[4][0] b = score[0][1] * score[4][1] c = score[0][2] * score[4][2] d = score[0][3] * score[4][3] total = [] for x in range(5): for i in range(4): s = score[0][0]* score[x][i] print(s) total.append(s) print(total) 出力値 [100, 120, 30, 40, 200, 420, 420, 450, 230, 450, 320, 450, 340, 230, 550, 540, 650, 990, 340, 560] 期待値 [[100, 120, 30, 40], [200, 420, 420, 450], [230, 450, 320, 450], [340, 230, 550, 540], [650, 990, 340, 560]]
#質問
上記の出力値は、20個の要素がある
二重のリストにして、期待値のように4個ずつに分けた二重リストを出力したい
ヒントまたは方法を教えて頂きたいです。
入力例に対して出力例がありませんが、93842600で合ってますか?
失礼しました。期待値を追記致しました。
期待値に一行目×一行目の出力がありますが、必要なのでしょうか?
期待値が全て「10を掛けた値」(score[0][0]を掛けた値)になっていますが、それでいいのでしょうか?
本当は、score[0][0]を省きたくて、 s = score[0][0]* score[x+1][i] としたのですが、範囲外になってしまったので、リスト作成後に削除することにしました。
s = score[0][0]* score[x][i]はs = score[0][i]* score[x][i]な気がするのと、問題文を読むと一行目*一行目は外してやる必要がある気がします
hayataka2049さんの仰る通りですね。2点間違っておりますね。
回答4件
あなたの回答
tips
プレビュー