pythonindexinglist

Python list.index throws exception when index not found


Why does list.index throw an exception, instead of using an arbitrary value (for example, -1)? What's the idea behind this?

To me it looks cleaner to deal with special values, rather than exceptions.

EDIT: I didn't realize -1 is a potentially valid value. Nevertheless, why not something else? How about a value of None?


Solution

  • Because -1 is itself a valid index. It could use a different value, such as None, but that wouldn't be useful, which -1 can be in other situations (thus str.find()), and would amount simply to error-checking, which is exactly what exceptions are for.