Why Python does *SLICING* the way it does??
Ron
radam2 at tampabay.rr.com
Thu Apr 21 17:45:28 EDT 2005
Ron wrote:
> seberino at spawar.navy.mil wrote:
>
>> Many people I know ask why Python does slicing the way it does.....
>>
>> Can anyone /please/ give me a good defense/justification???
>>
>> I'm referring to why mystring[:4] gives me
>> elements 0, 1, 2 and 3 but *NOT* mystring[4] (5th element).
>>
> There are actually 4 different ways to slice ....
> Where s = 'abcd'
> With s[i,j]
>
> Foreword slices index, forward steps
> a, b, c, d
> i= 0, 1, 2, 3
> j= 1, 2, 3, 4
>
> s[0,4] = 'abcd'
> s[1,3] = 'bc'
> .......
Minor correction to this. It's what I get for not realizing how late it
was.
Where s = 'abcd'
With s[i:j:step]
Positive slice index, (+1 step)
a, b, c, d
i= 0, 1, 2, 3
j= 1, 2, 3, 4
s[0:4] = 'abcd'
s[1:3] = 'bc'
Positive slice index, (-1 step)
a, b, c, d
i= 0, 1, 2, 3
j= -5, -4, -3, -2
s[3:-5:-1] = 'dcba'
s[2:-4:-1] = 'cb'
Negative slice index, (+1 step)
a, b, c, d
i= -4, -3, -2, -1
j= 1, 2, 3, 4
s[-4:4] = 'abcd'
s[-3:3] = 'bc'
Reverse slice index, (-1 step)
a, b, c, d
i= -4, -3, -2, -1
j= -5, -4, -3, -2
s[-1:-5:-1] = 'dcba'
s[-2:-4:-1] = 'cb'
Cheers,
Ron_Adam
More information about the Python-list
mailing list