On Mon, 11 Jan 2010 21:50:10 +0530 vishwajeet singh <dextrou...@gmail.com> wrote:
> Hello All, > > I am bit confuse how the slice works in case a negative step is supplied > a = 'abcde' > a[::-1] gives me edcba > > but [4:0:-1] gives me edcb > > while searching net I came accross something which said the following: > > If a negative stride is specified and the starting or stopping indices are > omitted, they default to ``end of axis'' and ``beginning of axis'' > respectively. > In my case 4 is end of axis and 0 is begining of the axis so a[::-1] should > be equivalent to [4:0:-1] but result which I get in both the cases does not > validate. Your interpretation is wrong. In your case, 4 is start index, 0 is end index (as obviously shown by the result you get). Step -1 lets you step backwards, but this does not change the fact that the end-index is the second argument of the slice, right? Now, python work with (right-side) half-open intervals, meaning that the second border is excluded (s[0:4] would return "abcd"). Which means in your case you won't get a[0] in the result. Hope I'm clear... It can be a bit misleading at start but, as it's consistent, once you get used to it all works fine ;-) Denis ________________________________ la vita e estrany http://spir.wikidot.com/ _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor