【问题标题】:python list.index() ValueError not IndexErrorpython list.index() ValueError 不是 IndexError
【发布时间】:2022-01-02 12:26:46
【问题描述】:

我怀疑这是历史性的,但文档中没有任何解释。

demo = 'zero', 'one', 'two'
a = demo.index('three')

将引发 ValueError。

dict()['three'] and demo[100]

引发 KeyError、IndexError

我发现 IndexError 对于 list.index 失败更合乎逻辑。您未能找到请求的键的索引。

我说的对吗?这么久了还改不了?或者 ValueError 是失败 list.index 的正确选择

我还注意到 LookupError 有父级:KeyError、IndexError

但不是 AttributeError,它实际上是来自 dict

的 keyError

【问题讨论】:

  • demo 键入为元组而不是 dict,请检查您的示例并更新问题。
  • demo 是一个元组。 dict() 是一个字典。不知道你在警告我什么

标签: python list dictionary exception indexing


【解决方案1】:

这里引发 ValueError 的问题是在列表(或元组,或其他)中找不到该值。
在您的第二个示例中,它是 KeyError 或 IndexError 的原因是因为在您的搜索中找不到键或索引(在这些情况下,您正在搜索键或索引)。
运行 list.index() 时,您正在搜索一个值。
因此,当找不到时,会引发 ValueError。

【讨论】:

  • 这确实证明了事情的合理性;这意味着答案是我错误地发现 IndexError 更合乎逻辑。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 2010-10-15
  • 1970-01-01
  • 2013-06-12
  • 2011-01-09
  • 2013-11-04
  • 1970-01-01
相关资源
最近更新 更多