python-查找和索引之间的区别

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

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

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

SohamC asked 2019-11-15T09:17:11Z
2个解决方案
84 votes

ValueError未找到子字符串时返回ValueError

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

ValueError筹集了ValueError

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

如果找到子字符串,则两个函数的行为方式相同。

falsetru answered 2019-11-15T09:17:45Z
16 votes

另外,find仅适用于列表,元组和字符串具有索引的字符串

>>> somelist
['Ok', "let's", 'try', 'this', 'out']
>>> type(somelist)
<class 'list'>

>>> somelist.index("try")
2

>>> somelist.find("try")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'find'

>>> sometuple
('Ok', "let's", 'try', 'this', 'out')
>>> type(sometuple)
<class 'tuple'>

>>> sometuple.index("try")
2

>>> sometuple.find("try")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'find'

>>> somelist2
"Ok let's try this"
>>> type(somelist2)
<class 'str'>

>>> somelist2.index("try")
9
>>> somelist2.find("try")
9

>>> somelist2.find("t")
5
>>> somelist2.index("t")
5
Reep answered 2019-11-15T09:18:09Z
translate from https://stackoverflow.com:/questions/22190064/difference-between-find-and-index