summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Panter <vadmium>2015-09-07 01:40:33 (GMT)
committerMartin Panter <vadmium>2015-09-07 01:40:33 (GMT)
commit0ed1bcdff891876e18e311911c724fc0bbce673c (patch)
tree38f63d2e05d128dd74c54b479e71cd099601b09e
parentb75a0e9f32c47cc75924c79f7ac74e2f11f32506 (diff)
downloadcpython-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.rst2
-rw-r--r--Doc/library/stdtypes.rst15
-rw-r--r--Misc/ACKS1
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
diff --git a/Misc/ACKS b/Misc/ACKS
index 59d0914..5650f9b 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1084,6 +1084,7 @@ Martin Pool
Iustin Pop
Claudiu Popa
John Popplewell
+Matheus Vieira Portela
Davin Potts
Guillaume Pratte
Florian Preinstorfer