Bug in string.find; was: Re: Proposed PEP: New style indexing,was Re: Bug in slice type

Antoon Pardon apardon at forel.vub.ac.be
Wed Aug 31 04:01:16 EDT 2005


Op 2005-08-31, Bengt Richter schreef <bokr at oz.net>:
> On 31 Aug 2005 07:26:48 GMT, Antoon Pardon <apardon at forel.vub.ac.be> wrote:
>
>>Op 2005-08-30, Bengt Richter schreef <bokr at oz.net>:
>>> On 30 Aug 2005 10:07:06 GMT, Antoon Pardon <apardon at forel.vub.ac.be> wrote:
>>>
>>>>Op 2005-08-30, Terry Reedy schreef <tjreedy at udel.edu>:
>>>>>
>>>>> "Paul Rubin" <"http://phr.cx"@NOSPAM.invalid> wrote in message 
>>>>> news:7xy86k3r7n.fsf at ruckus.brouhaha.com...
>>>>>
>>>>>> Really it's x[-1]'s behavior that should go, not find/rfind.
>>>>>
>>>>> I complete disagree, x[-1] as an abbreviation of x[len(x)-1] is extremely 
>>>>> useful, especially when 'x' is an expression instead of a name.
>>>>
>>>>I don't think the ability to easily index sequences from the right is
>>>>in dispute. Just the fact that negative numbers on their own provide
>>>>this functionality.
>>>>
>>>>Because I sometimes find it usefull to have a sequence start and
>>>>end at arbitrary indexes, I have written a table class. So I
>>>>can have a table that is indexed from e.g. -4 to +6. So how am
>>>>I supposed to easily get at that last value?
>>> Give it a handy property? E.g.,
>>>
>>>     table.as_python_list[-1]
>>
>>Your missing the point, I probably didn't make it clear.
>>
>>It is not about the possibilty of doing such a thing. It is
>>about python providing a frame for such things that work
>>in general without the need of extra properties in 'special'
>>cases.
>>
> How about interpreting seq[i] as an abbreviation of seq[i%len(seq)] ?
> That would give a consitent interpretation of seq[-1] and no errors
> for any value ;-)

But the question was not about having a consistent interpretation for
-1, but about an easy way to get the last value.

But I like your idea. I just think there should be two differnt ways
to index. maybe use braces in one case.

  seq{i} would be pure indexing, that throws exceptions if you
  are out of bound

  seq[i] would then be seq{i%len(seq)}

-- 
Antoon Pardon



More information about the Python-list mailing list