Issue #23406: Clarify documentation on multiplying a sequence

Patch from Matheus Vieira Portela.
This commit is contained in:
Martin Panter 2015-09-07 02:08:55 +00:00
parent 6f2bb98966
commit 7f02d6d0d9
3 changed files with 12 additions and 6 deletions

View File

@ -1164,6 +1164,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?
----------------------------------------

View File

@ -854,8 +854,8 @@ operations have the same priority as the corresponding numeric operations.
| ``s + t`` | the concatenation of *s* and | (6)(7) |
| | *t* | |
+--------------------------+--------------------------------+----------+
| ``s * n`` or | *n* shallow copies of *s* | (2)(7) |
| ``n * s`` | concatenated | |
| ``s * n`` or | equivalent to adding *s* to | (2)(7) |
| ``n * s`` | itself *n* times | |
+--------------------------+--------------------------------+----------+
| ``s[i]`` | *i*\ th item of *s*, origin 0 | \(3) |
+--------------------------+--------------------------------+----------+
@ -897,9 +897,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
@ -909,7 +909,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::
@ -920,6 +920,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

View File

@ -1097,6 +1097,7 @@ Martin Pool
Iustin Pop
Claudiu Popa
John Popplewell
Matheus Vieira Portela
Davin Potts
Guillaume Pratte
Florian Preinstorfer