Bug in string.find
rrr at ronadam.com
Fri Sep 2 02:23:14 CEST 2005
Fredrik Lundh wrote:
> Ron Adam wrote:
>>The problem with negative index's are that positive index's are zero
>>based, but negative index's are 1 based. Which leads to a non
> indices point to the "gap" between items, not to the items themselves.
So how do I express a -0? Which should point to the gap after the last
> straight indexing returns the item just to the right of the given gap (this is
> what gives you the perceived assymmetry), slices return all items between
> the given gaps.
If this were symmetrical, then positive index's would return the value
to the right and negative index's would return the value to the left.
Have you looked at negative steps? They also are not symmetrical.
All of the following get the center 'd' from the string.
a = 'abcdefg'
print a # d 4 gaps from beginning
print a[-4] # d 5 gaps from end
print a[3:4] # d
print a[-4:-3] # d
print a[-4:4] # d
print a[3:-3] # d
print a[3:2:-1] # d These are symetric?!
print a[-4:-5:-1] # d
print a[3:-5:-1] # d
print a[-4:2:-1] # d
This is why it confuses so many people. It's a shame too, because slice
objects could be so much more useful for indirectly accessing list
ranges. But I think this needs to be fixed first.
More information about the Python-list