Dick Moores wrote: > At 08:38 PM 7/25/2007, Luke Paireepinart wrote: >> > I would like to know what exactly the index notation of [::-1] is, >> where >> > it comes from and if there are other variants. >> > >> This is called list slicing. Look into it to figure out what all this >> stuff means. >> I could send you a link but I'd just google 'python list slicing' to >> find it, so I'll leave that as an exercise for the reader. > > I don't find Google of help with this. Could someone supply a link? Wow, it was actually quite a bit harder to Google than I thought :) well, some experimentation leads me to believe this is the syntax for list slicing:
x[ i : j ] slices from i to j x[ i : ] slices from i to the end of the list x[ : j ] slices from the beginning of the list to j x[ : ] slices from the beginning of the list to the unspecified parameter (the end of the list) in other words, you can use this to make a copy. x[ : : ] This seems to work the same as the above. (note that in both cases, : and ::, the list is just a one-level-deep copy. so the list [[1,2,3],[4,5,6]] can't be copied fully with this.) however, x[ : : k ] is a copy (same as above) that uses k as a step. Here are some examples that should make it make sense. >>> x = [1,2,3,4,5,6,7,8,9] >>> x[::1] [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> x[::2] [1, 3, 5, 7, 9] >>> x[::5] [1, 6] >>> x[::-5] [9, 4] >>> x[::-1] [9, 8, 7, 6, 5, 4, 3, 2, 1] To summarize, the negative/positiveness of this parameter k denotes whether the step is from beginning to end, or from end to beginning. so if it's negative, the step will start at the last element, then step |k| toward the beginning, then grab that element ( if such an element exists) and proceed in this manner. This is all gleaned from experimentation, so it shouldn't be taken as the Word. HTH, -Luke > > Dick Moores > > > _______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
