【问题标题】:TypeError: list indices must be integers or slices, not list - What do i do?TypeError:列表索引必须是整数或切片,而不是列表 - 我该怎么办?
【发布时间】:2020-08-05 00:47:33
【问题描述】:

我不断收到错误“ TypeError:列表索引必须是整数或切片,而不是列表”,我不确定如何修复它我需要更改什么?

@app.route("/browse/<where>")
def collectPage(where):
    for item in lostItems:
        if item[1] == where:
            passedItem = lostItems[item]
    return render_template("mainPage.html", collect = Collect, item = passedItem) 

【问题讨论】:

  • 可以添加lostItems的内容吗?

标签: python html flask typeerror


【解决方案1】:

试试:

def collectPage(where):
    for item in range(len(lostItems)):
        if item[1] == where:
            passedItem = lostItems[item]
    return render_template("mainPage.html", collect = Collect, item = passedItem)

或者

def collectPage(where):
    for item in lostItems:
        if item[1] == where:
            passedItem = item
    return render_template("mainPage.html", collect = Collect, item = passedItem)

【讨论】:

  • 如果itemint 类型,你如何使用item[1]
  • 为了支持这一点,我们必须使用 if 条件检查类型
【解决方案2】:

看起来lostItems 是一个嵌套列表。当您使用 lostItems[item] 时,您会收到错误消息。您可以将您的声明更改为passedItem = item

@app.route("/browse/<where>")
def collectPage(where):
    for item in lostItems:
        if item[1] == where:
            passedItem = item
    return render_template("mainPage.html", collect = Collect, item = passedItem) 

或者您可以使用enumetrate 访问列表索引。

@app.route("/browse/<where>")
def collectPage(where):
    for indx,item in enumerate(lostItems):
        if item[1] == where:
            passedItem = lostItems[indx]
    return render_template("mainPage.html", collect = Collect, item = passedItem) 

【讨论】:

    猜你喜欢
    • 2016-09-16
    • 1970-01-01
    • 2019-07-04
    • 2015-12-09
    • 2021-11-28
    • 2020-09-23
    • 2020-09-04
    • 2019-10-01
    相关资源
    最近更新 更多