Grouping code by indentation - feature or ******?

Scott David Daniels Scott.Daniels at Acm.Org
Sun Mar 27 16:41:50 EST 2005


Reinhold Birkenfeld wrote:
> Jacob Lee wrote:
> 
> 
>>About slices:
>>
>>I agree that Python's slice boundaries (some_list[a:b] being all elements
>>with a <= index < b) are counterintuitive at first. But this method does
>>satisfy some handy properties, the first of which being:
>>  l[:n] + l[n:] = l
> 
> 
> And best of all, this is true for _every_ n, at least for the standard
> slice implementations...
> 
> 
>>Secondly, the range() function behaves identically to slices, meaning that
>>  for i in range(10):
>>will iterate 10 times, and
>>  for i in range(len(l)):
>>will iterate over the indices of the sequence l.
>>
>>If you had l[a:b] be inclusive on both a and b (instead of inclusive on a
>>and exclusive on b), you would have to be adding and subtracting one in
>>all of these examples, leading that much more easily to off-by-one errors.
> 
> 
> It would be not so much adding/subtracting if list indices started at 1,
> but who on earth would want that? ;)
> 
> Reinhold
You certainly do get lots of adding/subtracting even if they start at 1.
For example the length of lst[a : b] would be (a - b + 1).  I certainly
had my share of fencepost problems in Fortran I, II, IV, V ...

--Scott David Daniels
Scott.Daniels at Acm.Org



More information about the Python-list mailing list