空の二次元配列を用意してそこに値を追加していきたいのですが、kist index out of rangeというエラーが起きてしまいます。どこに問題があるか教えていただけると嬉しいです。よろしくお願いいたします。
python
1result=[[ ]*L]*L 2 3 4def judge(i,select): 5 if select+items[i].weight<=limit: 6 select +=items[i].weight 7 for j in range(L-1): 8 result[i][j].append(items[i].name) 9 10 if i<L-1: 11 judge(i+1,select) 12 else: 13 return value 14 if select+items[i].weight>limit: 15 select+=0 16 if i<L-1: 17 judge(i+1,select) 18 19 20 21 22for i in range(L-1): 23 judge(i,0) 24 for j in range(L-1): 25 result[i][j].append(items[i].name) 26 print(result[i])
kist ではなくlistですね。キーボード的に隣にあるので打ち間違えたのでしょう。
> result=[[ ]*L]*L
Lとはなに?
items の要素数です。
要素数はわかるんだけど、数値が代入されてるようにはみえませんが
まぁ、Lの定義はどうでもいいとして、根本的に排列が理解出来ていないように思えます。
そもそも唐突に登場するitemsが一切説明がない為、いまいち何言っているのか分かりません。
「list index out of range」というエラーは「リストインデックスが範囲外にですよ」というエラーなので、難易度と言うほどでもない簡単なエラーなんですが...
お手数ですが、コードの一部ではなく、コード全体 (コピペしたら動く状態のもの) とやりたい処理内容を説明していただけますか。
L や items が質問のコード内で定義されていないため、回答できないです。

回答1件
あなたの回答
tips
プレビュー