rfind bug ?

Chris Rebert clp2 at rebertia.com
Wed Apr 21 06:26:21 EDT 2010


On Wed, Apr 21, 2010 at 2:59 AM, Stef Mientki <stef.mientki at gmail.com> wrote:
> On 21-04-2010 10:56, Chris Rebert wrote:
>> On Wed, Apr 21, 2010 at 1:51 AM, Stef Mientki <stef.mientki at gmail.com> wrote:
>>> With the following code, I would expect a result of 5 !!
>>>
>>>>>> a= 'word1 word2 word3'
>>>>>> a.rfind(' ',7)
>>>>>>
>>> 11
>>>
>>> Is this a bug ?
>>>
>> No. Don't you think someone would have found such an obvious bug by now?
>>
> if it's not a bug,
> then the start index has no meaning ...
> ... and some would call that a bug.

Ah, I neglected to take your use of .rfind()'s second parameter into account!

As can be interpolated from the part of the docs James quotes:
s.rfind(' ', 7) === s[7:].rfind(' ') + 7 # overlooking the 'not present' case

That is, the second parameter to .rfind(), namely `start`, is relative
to the *left* end of the string, not the right end. I can see how this
might be unintuitive, but it does make the API more uniform.

Cheers,
Chris



More information about the Python-list mailing list