在python中处理list.index(可能不存在)的最佳方法?
我有看起来像这样的代码: thing_index = thing_list.index(thing) otherfunction(thing_list, thing_index) 好的,所以简化了,但是您知道了。现在thing可能实际上不在列表中,在这种情况下,我想通过-1 thing_index。在其他语言中index(),如果找不到该元素,这就是您期望返回的结果。实际上,它引发了一个错误ValueError。 我可以这样做: try: thing_index = thing_list.index(thing) except ValueError: thing_index = -1 otherfunction(thing_list, thing_index) 但这感觉很脏,而且我不知道是否ValueError可以出于其他原因而提出该提议。我根据生成器函数提出了以下解决方案,但似乎有点复杂: thing_index = ( [(i for i in xrange(len(thing_list)) if thing_list[i]==thing)] or [-1] )[0] 有没有一种更清洁的方法来实现同一目标?假设列表未排序。