【问题标题】:Python issue with TypeError: 'int' object is not subscriptableTypeError 的 Python 问题:'int' 对象不可下标
【发布时间】:2017-09-21 02:51:48
【问题描述】:

所以我无法理解为什么会收到此错误“TypeError:'int' object is not subscriptable”,我正在使用的代码如下:

 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()

错误发生在“for j in range(len(chart[i])):” 我要做的就是打印图表。我已经查看了这个错误的其他答案,但似乎没有什么能满足这段代码中发生的事情

【问题讨论】:

标签: python charts


【解决方案1】:

您的 fill_chart 函数返回整数,而不是列表。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 2015-07-31
    • 2015-12-18
    • 2017-07-15
    • 2012-02-21
    • 2018-08-07
    • 2023-04-02
    相关资源
    最近更新 更多