[Python-checkins] cpython (2.7): #16470: mention set and dict comprehension in the tutorial. Patch by Yongzhi

ezio.melotti python-checkins at python.org
Sat Nov 17 11:06:58 CET 2012


http://hg.python.org/cpython/rev/2e2e7f398864
changeset:   80459:2e2e7f398864
branch:      2.7
parent:      80455:b8ece33ce27d
user:        Ezio Melotti <ezio.melotti at gmail.com>
date:        Sat Nov 17 12:02:30 2012 +0200
summary:
  #16470: mention set and dict comprehension in the tutorial.  Patch by Yongzhi Pan.

files:
  Doc/tutorial/datastructures.rst |  27 ++++++++++++++------
  1 files changed, 19 insertions(+), 8 deletions(-)


diff --git a/Doc/tutorial/datastructures.rst b/Doc/tutorial/datastructures.rst
--- a/Doc/tutorial/datastructures.rst
+++ b/Doc/tutorial/datastructures.rst
@@ -229,6 +229,7 @@
 such a common need, a built-in function ``sum(sequence)`` is already provided,
 and works exactly like this.
 
+.. _tut-listcomps:
 
 List Comprehensions
 -------------------
@@ -485,6 +486,10 @@
 eliminating duplicate entries.  Set objects also support mathematical operations
 like union, intersection, difference, and symmetric difference.
 
+Curly braces or the :func:`set` function can be used to create sets.  Note: to
+create an empty set you have to use ``set()``, not ``{}``; the latter creates an
+empty dictionary, a data structure that we discuss in the next section.
+
 Here is a brief demonstration::
 
    >>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
@@ -511,6 +516,13 @@
    >>> a ^ b                              # letters in a or b but not both
    set(['r', 'd', 'b', 'm', 'z', 'l'])
 
+Similarly to :ref:`list comprehensions <tut-listcomps>`, set comprehensions
+are also supported::
+
+   >>> a = {x for x in 'abracadabra' if x not in 'abc'}
+   >>> a
+   set(['r', 'd'])
+
 
 .. _tut-dictionaries:
 
@@ -562,19 +574,18 @@
    >>> 'guido' in tel
    True
 
-The :func:`dict` constructor builds dictionaries directly from lists of
-key-value pairs stored as tuples.  When the pairs form a pattern, list
-comprehensions can compactly specify the key-value list. ::
+The :func:`dict` constructor builds dictionaries directly from sequences of
+key-value pairs::
 
    >>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
    {'sape': 4139, 'jack': 4098, 'guido': 4127}
-   >>> dict([(x, x**2) for x in (2, 4, 6)])     # use a list comprehension
+
+In addition, dict comprehensions can be used to create dictionaries from
+arbitrary key and value expressions::
+
+   >>> {x: x**2 for x in (2, 4, 6)}
    {2: 4, 4: 16, 6: 36}
 
-Later in the tutorial, we will learn about Generator Expressions which are even
-better suited for the task of supplying key-values pairs to the :func:`dict`
-constructor.
-
 When the keys are simple strings, it is sometimes easier to specify pairs using
 keyword arguments::
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list