0
なぜこのエラーが発生するのか理解できません。「TypeError: 'int'オブジェクトは添え字ではありません」使用しているコードはPythonのTypeErrorに関する問題: 'int'オブジェクトに添字が付いていない
def make_chart(size, items):
keys = list(items.keys())
chart = list()
row = []
for r in range(len(keys)):
for i in range(size):
row.append({"w":0, "v":0, "keys":[]})
chart.append(row)
return chart
def fill_chart(size, items, chart):
keys = list(items.keys())
vals = []
wts = []
for v in range(len(chart)):
for y in range(len(chart[v])):
vals.append(items[keys[v]]['w'])
wts.append(items[keys[v]]['v'])
w, h = size +1, len(vals)
table = [[ 0 for x in range(w)] for y in range(h)]
for index in range(len(vals)):
for weight in range(w):
if wts[index] > weight:
table[index][weight] = table[index -1][weight]
continue
prior_values = table[index - 1][weight]
new_option_best = vals[index] + table[index - 1][weight - wts]
table[index][weight] = max(prior_values, new_option_best)
solution_arr = []
for x in table:
for y in x:
solution_arr.append(y)
return max([x for y in table for x in y])
def main():
iphone = {"w": 1, "v": 3000}
guitar = {"w": 1, "v": 2000}
tablet = {"w": 2, "v": 3000}
dog = {"w":1, "v": 4000}
items = {"iphone":iphone, "guitar":guitar, "tablet":tablet, "dog":dog}
chart = make_chart(4, items)
chart = fill_chart(4, items, chart)
for i in range(len(items.keys())):
print("---{0}".format(list(items.keys()))[i])
for j in range(len(chart[i])):
print(chart[i][j])
print(len(chart))
if __name__ == "__main__":
main()
エラーがで発生している "範囲内のjについて(LEN(チャート[i])と):" 私がやろうとしている すべては、チャートを印刷しています。私はこのエラーの他の答えを見てきましたが、このコードで何が起こっているかを確認するものはありません。
[エラー: 'int'オブジェクトはサブスクリプトできません](https://stackoverflow.com/questions/8220702/error-int-object-is-not-subscriptable) – Carcigenicate
'chart'のようです数。なぜデバッグするかを調べる。 – Carcigenicate
あなたのコードでは、fill_chartは2次元配列を返しますが、代わりに整数を返します。 – Quinn