diff options
author | Martin Panter <vadmium> | 2015-09-07 01:40:33 (GMT) |
---|---|---|
committer | Martin Panter <vadmium> | 2015-09-07 01:40:33 (GMT) |
commit | 0ed1bcdff891876e18e311911c724fc0bbce673c (patch) | |
tree | 38f63d2e05d128dd74c54b479e71cd099601b09e | |
parent | b75a0e9f32c47cc75924c79f7ac74e2f11f32506 (diff) | |
download | cpython-0ed1bcdff891876e18e311911c724fc0bbce673c.zip cpython-0ed1bcdff891876e18e311911c724fc0bbce673c.tar.gz cpython-0ed1bcdff891876e18e311911c724fc0bbce673c.tar.bz2 |
Issue #23406: Clarify documentation on multiplying a sequence
Patch from Matheus Vieira Portela.
-rw-r--r-- | Doc/faq/programming.rst | 2 | ||||
-rw-r--r-- | Doc/library/stdtypes.rst | 15 | ||||
-rw-r--r-- | Misc/ACKS | 1 |
3 files changed, 12 insertions, 6 deletions
diff --git a/Doc/faq/programming.rst b/Doc/faq/programming.rst index 23891be..135ae52 100644 --- a/Doc/faq/programming.rst +++ b/Doc/faq/programming.rst @@ -1280,6 +1280,8 @@ analogue of lisp car is ``lisp_list[0]`` and the analogue of cdr is usually a lot slower than using Python lists. +.. _faq-multidimensional-list: + How do I create a multidimensional list? ---------------------------------------- diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst index bb918df..86aae51 100644 --- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -736,8 +736,8 @@ In the table, *s* and *t* are sequences of the same type; *n*, *i* and *j* are i | ``s + t`` | the concatenation of *s* and | \(6) | | | *t* | | +------------------+--------------------------------+----------+ -| ``s * n, n * s`` | *n* shallow copies of *s* | \(2) | -| | concatenated | | +| ``s * n, n * s`` | equivalent to adding *s* to | \(2) | +| | itself *n* times | | +------------------+--------------------------------+----------+ | ``s[i]`` | *i*\ th item of *s*, origin 0 | \(3) | +------------------+--------------------------------+----------+ @@ -789,9 +789,9 @@ Notes: (2) Values of *n* less than ``0`` are treated as ``0`` (which yields an empty - sequence of the same type as *s*). Note also that the copies are shallow; - nested structures are not copied. This often haunts new Python programmers; - consider: + sequence of the same type as *s*). Note that items in the sequence *s* + are not copied; they are referenced multiple times. This often haunts + new Python programmers; consider: >>> lists = [[]] * 3 >>> lists @@ -801,7 +801,7 @@ Notes: [[3], [3], [3]] What has happened is that ``[[]]`` is a one-element list containing an empty - list, so all three elements of ``[[]] * 3`` are (pointers to) this single empty + list, so all three elements of ``[[]] * 3`` are references to this single empty list. Modifying any of the elements of ``lists`` modifies this single list. You can create a list of different lists this way: @@ -812,6 +812,9 @@ Notes: >>> lists [[3], [5], [7]] + Further explanation is available in the FAQ entry + :ref:`faq-multidimensional-list`. + (3) If *i* or *j* is negative, the index is relative to the end of the string: ``len(s) + i`` or ``len(s) + j`` is substituted. But note that ``-0`` is still @@ -1084,6 +1084,7 @@ Martin Pool Iustin Pop Claudiu Popa John Popplewell +Matheus Vieira Portela Davin Potts Guillaume Pratte Florian Preinstorfer |