当前位置:  开发笔记 > 编程语言 > 正文

Python list.index在找不到索引时抛出异常

如何解决《Pythonlist.index在找不到索引时抛出异常》经验,为你挑选了3个好方法。

为什么list.index抛出异常,而不是使用任意值(例如-1)?这背后有什么想法?

对我而言,处理特殊价值而非例外情况看起来更清晰.

编辑:我没有意识到这-1是一个潜在有效的价值.不过,为什么不是别的呢?无价值怎么样?



1> Devin Jeanpi..:

因为-1它本身是一个有效的索引.它可以使用不同的值,例如None,但是没有用,这-1可能在其他情况下(因此str.find()),并且仅仅是错误检查,这正是异常的用途.



2> amit..:

添加Devin的回答:这是特殊回报值与异常之间的旧争论.许多编程专家更喜欢异常,因为在异常情况下,我会看到整个堆栈跟踪并立即推断出错误.


+1:例外并不取决于某些"神圣"的价值.例外通常更容易使用.

3> vartec..:

那么,特殊值实际上必须是None,因为-1是一个有效的索引(意味着列表的最后一个元素).

您可以通过以下方式模拟此行为:

idx = l.index(x) if x in l else None


好吧,就是那个或尝试/除外.
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有