From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Mon, 25 Mar 2024 22:40:41 +0000 (+0100) Subject: [3.11] Add information about negative indexes to sequence datamodel doc (GH-110903... X-Git-Tag: v3.11.9~16 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e64c7d3e196b73b3ce03de42f0acd554cbd3706d;p=thirdparty%2FPython%2Fcpython.git [3.11] Add information about negative indexes to sequence datamodel doc (GH-110903) (#117239) Co-authored by Terry Jan Reedy (cherry picked from commit c2276176d543a2fc2d57709c2787f99850fbb073) Co-authored-by: Adorilson Bezerra --- diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index d7b6e2bb1d28..9f3f80294ddb 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -299,14 +299,17 @@ Sequences These represent finite ordered sets indexed by non-negative numbers. The built-in function :func:`len` returns the number of items of a sequence. When the length of a sequence is *n*, the index set contains the numbers 0, 1, -..., *n*-1. Item *i* of sequence *a* is selected by ``a[i]``. +..., *n*-1. Item *i* of sequence *a* is selected by ``a[i]``. Some sequences, +including built-in sequences, interpret negative subscripts by adding the +sequence length. For example, ``a[-2]`` equals ``a[n-2]``, the second to last +item of sequence a with length ``n``. .. index:: single: slicing Sequences also support slicing: ``a[i:j]`` selects all items with index *k* such that *i* ``<=`` *k* ``<`` *j*. When used as an expression, a slice is a -sequence of the same type. This implies that the index set is renumbered so -that it starts at 0. +sequence of the same type. The comment above about negative indexes also applies +to negative slice positions. Some sequences also support "extended slicing" with a third "step" parameter: ``a[i:j:k]`` selects all items of *a* with index *x* where ``x = i + n*k``, *n*