找到方法指标

时间:2013-12-15 00:44:03

标签: python string indexing

我的书说,当找到序列中的元素时,find方法返回最左边的索引,而当找不到序列中的元素时,返回-1。所以我想知道为什么这本书有这个例子:

>>>'With a moo-moo here, and a moo-moo there'.find(moo)
7

不是最左边元素2的索引位置? 我准备打折它作为勘误的错字然后我读了下一个例子:

>>>title="Monty Python's Flying Circus"
>>>title.find('Python')
6

在索引1处不是Python吗?

有些例子对我有意义,但是:

>>>title="Monty Python's Flying Circus"
>>>title.find('Monty')
0

所以现在我倍加困惑,我错过了什么,或者这是两个错别字的发生?

1 个答案:

答案 0 :(得分:4)

str.find正常运作。在Python中,字符串由字符索引,而不是按字索引。

所以,在这个字符串中:

'With a moo-moo here, and a moo-moo there'

首次出现moo从索引7开始。字符7m,字符8o,字符9是另一个o


为了更好地解释,下面是一个显示示例字符串的第一个10索引的图表:

'With a moo-moo here, and a moo-moo there'
#0123456789

以下是翻译中的测试:

>>> 'With a moo-moo here, and a moo-moo there'[7]
'm'
>>> 'With a moo-moo here, and a moo-moo there'[7:10]
'moo'
>>>