簡體   English   中英

python list.index() ValueError 不是 IndexError

[英]python list.index() ValueError not IndexError

我懷疑這是歷史性的,但文檔中沒有任何解釋。

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

這里引發 ValueError 的問題是在列表(或元組或其他)中找不到該值。
在您的第二個示例中,它是 KeyError 或 IndexError 的原因是因為在您的搜索中找不到鍵或索引(在這些情況下,您正在搜索鍵或索引)。
運行 list.index() 時,您正在搜索一個值。
因此,當找不到時,會引發 ValueError 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM