Skip to content Skip to sidebar Skip to footer

Understanding Pythons Reverse Slice ( [::-1] )

I always thought that omitting arguments in the python slice operation would result into: start = 0 end = len(lst) step = 1 That holds true if the step is positive, but as soon a

Solution 1:

The default is alwaysNone; it is up to the type to determine how to handle None for any of the 3 values. The list object is simply passed a slice(None, None, -1) object in this case.

See footnote 5 to the operations table in the sequence types documentation for how Python's default sequence types (including list objects) interpret these:

s[i:j:k] 5. [...] If i or j are omitted or None, they become “end” values (which end depends on the sign of k).

So the defaults are dependent on the sign of the step value; if negative the ends are reversed. For [::-1] the end values are len(s) - 1 and -1 (absolute, not relative to the end), respectively, because the step is negative.

Post a Comment for "Understanding Pythons Reverse Slice ( [::-1] )"