Kaydet (Commit) 0ed1bcdf authored tarafından Martin Panter's avatar Martin Panter

Issue #23406: Clarify documentation on multiplying a sequence

Patch from Matheus Vieira Portela.
üst b75a0e9f
...@@ -1280,6 +1280,8 @@ analogue of lisp car is ``lisp_list[0]`` and the analogue of cdr is ...@@ -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. usually a lot slower than using Python lists.
.. _faq-multidimensional-list:
How do I create a multidimensional list? How do I create a multidimensional list?
---------------------------------------- ----------------------------------------
......
...@@ -736,8 +736,8 @@ In the table, *s* and *t* are sequences of the same type; *n*, *i* and *j* are i ...@@ -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) | | ``s + t`` | the concatenation of *s* and | \(6) |
| | *t* | | | | *t* | |
+------------------+--------------------------------+----------+ +------------------+--------------------------------+----------+
| ``s * n, n * s`` | *n* shallow copies of *s* | \(2) | | ``s * n, n * s`` | equivalent to adding *s* to | \(2) |
| | concatenated | | | | itself *n* times | |
+------------------+--------------------------------+----------+ +------------------+--------------------------------+----------+
| ``s[i]`` | *i*\ th item of *s*, origin 0 | \(3) | | ``s[i]`` | *i*\ th item of *s*, origin 0 | \(3) |
+------------------+--------------------------------+----------+ +------------------+--------------------------------+----------+
...@@ -789,9 +789,9 @@ Notes: ...@@ -789,9 +789,9 @@ Notes:
(2) (2)
Values of *n* less than ``0`` are treated as ``0`` (which yields an empty 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; sequence of the same type as *s*). Note that items in the sequence *s*
nested structures are not copied. This often haunts new Python programmers; are not copied; they are referenced multiple times. This often haunts
consider: new Python programmers; consider:
>>> lists = [[]] * 3 >>> lists = [[]] * 3
>>> lists >>> lists
...@@ -801,7 +801,7 @@ Notes: ...@@ -801,7 +801,7 @@ Notes:
[[3], [3], [3]] [[3], [3], [3]]
What has happened is that ``[[]]`` is a one-element list containing an empty 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. list. Modifying any of the elements of ``lists`` modifies this single list.
You can create a list of different lists this way: You can create a list of different lists this way:
...@@ -812,6 +812,9 @@ Notes: ...@@ -812,6 +812,9 @@ Notes:
>>> lists >>> lists
[[3], [5], [7]] [[3], [5], [7]]
Further explanation is available in the FAQ entry
:ref:`faq-multidimensional-list`.
(3) (3)
If *i* or *j* is negative, the index is relative to the end of the string: 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 ``len(s) + i`` or ``len(s) + j`` is substituted. But note that ``-0`` is still
......
...@@ -1084,6 +1084,7 @@ Martin Pool ...@@ -1084,6 +1084,7 @@ Martin Pool
Iustin Pop Iustin Pop
Claudiu Popa Claudiu Popa
John Popplewell John Popplewell
Matheus Vieira Portela
Davin Potts Davin Potts
Guillaume Pratte Guillaume Pratte
Florian Preinstorfer Florian Preinstorfer
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment