我的书说,当找到序列中的元素时,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
所以现在我倍加困惑,我错过了什么,或者这是两个错别字的发生?
答案 0 :(得分:4)
str.find
正常运作。在Python中,字符串由字符索引,而不是按字索引。
所以,在这个字符串中:
'With a moo-moo here, and a moo-moo there'
首次出现moo
从索引7
开始。字符7
是m
,字符8
是o
,字符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'
>>>