]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.11] Add information about negative indexes to sequence datamodel doc (GH-110903...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 25 Mar 2024 22:40:41 +0000 (23:40 +0100)
committerGitHub <noreply@github.com>
Mon, 25 Mar 2024 22:40:41 +0000 (22:40 +0000)
Co-authored by Terry Jan Reedy
(cherry picked from commit c2276176d543a2fc2d57709c2787f99850fbb073)

Co-authored-by: Adorilson Bezerra <adorilson@gmail.com>
Doc/reference/datamodel.rst

index d7b6e2bb1d28083bd47758df2e84530286e68140..9f3f80294ddbabe5b5575b9c1db938e6b2552779 100644 (file)
@@ -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*