2014-03-05 55 views
26

我是python的新手,无法完全理解find和index之间的区别。查找和索引之间的区别

>>> line 
'hi, this is ABC oh my god!!' 
>>> line.find("o") 
16 
>>> line.index("o") 
16 

它们总是返回相同的结果。 谢谢!

回答

38

str.find返回-1当它没有找到子字符串。

>>> line = 'hi, this is ABC oh my god!!' 
>>> line.find('?') 
-1 

虽然str.index提高ValueError

>>> line.index('?') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: substring not found 

两个功能相同的行为方式,如果一个子串中发现。

+1

如果找到子字符串,那么这两个函数的行为方式是一样的吗? – SohamC

+0

@ user1603970,是的,他们有。他们的参数也是一样的。 – falsetru

+0

@ user1603970,根据我在答案中链接的'index'文档:与find()类似,但在找不到子字符串时引发ValueError。 – falsetru

-3

您可以通过阅读website了解如何实施findindex函数。

您可以使用相同的通用函数找到这两个函数,只是返回结果不同而已。

+2

仅链接答案会在链接断开时失去其价值。 –