Understanding pythons reverse slice ( [::-1] ) -


i thought omitting arguments in python slice operation result into:

  • start = 0
  • end = len(lst)
  • step = 1

that holds true if step positive, step negative, in "reverse slice" [::-1], omitting start/end results in:

  • start = len(lst)-1
  • end = none

is special case, or missing something?

the default always none; type determine how handle none of 3 values. list object passed slice(none, none, -1) object in case.

see footnote 5 operations table in sequence types documentation how python's default sequence types (including list objects) interpret these:

s[i:j:k]
5. [...] if i or j omitted or none, become “end” values (which end depends on sign of k).

so defaults dependent on sign of step value; if negative ends reversed. [::-1] end values len(s) - 1 , -1 (absolute, not relative end), respectively, because step negative.


Comments