【问题标题】:IndexError: list assignment index out of range when deleting passed in indexIndexError:删除传入索引时列表分配索引超出范围
【发布时间】:2017-07-25 01:55:15
【问题描述】:

我试图通过传入列表和索引来从给定索引的列表中删除一个项目。尽管我在尝试它时遇到了索引错误。我不确定它如何超出索引范围。我正在使用 python 3。

def removeTasks(k, toDo):
    del toDo[k]
    return toDo

【问题讨论】:

  • 你能提供一些可以重新生成错误的函数的示例输入吗?
  • 这是在 CodeFIghts 网站上。我知道这不会是索引中的数字的问题。测试将索引值 10 放入索引中,长度为 1。除了 toDo[k[ 中的内容之外,我不允许更改任何代码
  • 好吧,他们可能希望你用一个简单的try/except 块来处理这种情况。
  • def removeTasks(k, toDo): del ... return toDo 我不确定,因为代码只允许更改省略号
  • 实际上,在不了解全部问题的情况下很难给出解决方案。请添加可以重现您的问题的最小示例。虽然不鼓励这样做,但如果您仍然无法描述问题,您可以添加问题的链接。

标签: python list indexing range out


【解决方案1】:

如果您只有一些无效的密钥,您可以使用try/except 块来处理它。你可以像下面这样重写你的函数:

def removeTasks(k, toDo):
    try:   
        del toDo[k]
    except IndexError:
        pass
    finally: 
        return toDo

【讨论】:

    猜你喜欢
    • 2020-09-17
    • 1970-01-01
    • 2018-10-21
    • 2020-02-13
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    相关资源
    最近更新 更多