summaryrefslogtreecommitdiffstats
path: root/Doc/tutorial
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2014-10-01 01:25:38 (GMT)
committerR David Murray <rdmurray@bitdance.com>2014-10-01 01:25:38 (GMT)
commit6bd68608ffb1a0366760a190864bb05c618559ab (patch)
treed632b58513fb31a3e18b7a45949d85c80d7b422c /Doc/tutorial
parente6edc03a6147c7447741dc5b163730dcb44dda4c (diff)
downloadcpython-6bd68608ffb1a0366760a190864bb05c618559ab.zip
cpython-6bd68608ffb1a0366760a190864bb05c618559ab.tar.gz
cpython-6bd68608ffb1a0366760a190864bb05c618559ab.tar.bz2
#21739: mention subtle difference between loops and listcomps in tutorial.
We don't want to go into a full explanation of scopes at this point in the tutorial, so we just mention that the loop creates or overwrites a persistent variable while the listcomp doesn't. Not mentioning this would lead someone to incorrectly assume loops and listcomps were *completely* equivalent, which would confuse them later. Original patch by Rose Ames, tweaked to remove the word 'scope'.
Diffstat (limited to 'Doc/tutorial')
-rw-r--r--Doc/tutorial/datastructures.rst11
1 files changed, 8 insertions, 3 deletions
diff --git a/Doc/tutorial/datastructures.rst b/Doc/tutorial/datastructures.rst
index f2b66f7..5c3ae16 100644
--- a/Doc/tutorial/datastructures.rst
+++ b/Doc/tutorial/datastructures.rst
@@ -199,12 +199,17 @@ For example, assume we want to create a list of squares, like::
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
-We can obtain the same result with::
+Note that this creates (or overwrites) a variable named ``x`` that still exists
+after the loop completes. We can calculate the list of squares without any
+side effects using::
+
+ squares = list(map(lambda x: x**2, range(10)))
+
+or, equivalently::
squares = [x**2 for x in range(10)]
-This is also equivalent to ``squares = list(map(lambda x: x**2, range(10)))``,
-but it's more concise and readable.
+which is more concise and readable.
A list comprehension consists of brackets containing an expression followed
by a :keyword:`for` clause, then zero or more :keyword:`for` or :keyword:`if`