[Python-checkins] r46988 - sandbox/trunk/Doc/functional.rst

andrew.kuchling python-checkins at python.org
Fri Jun 16 02:44:02 CEST 2006


Author: andrew.kuchling
Date: Fri Jun 16 02:44:02 2006
New Revision: 46988
Modified:
 sandbox/trunk/Doc/functional.rst
Log:
Mention generator expressions
Minor typographical fix
Add notes for reference section
Modified: sandbox/trunk/Doc/functional.rst
==============================================================================
--- sandbox/trunk/Doc/functional.rst	(original)
+++ sandbox/trunk/Doc/functional.rst	Fri Jun 16 02:44:02 2006
@@ -338,8 +338,11 @@
 
 Note that in all case the resulting ``stripped_list`` is a Python list
 containing the resulting lines, not an iterator. This means that list
-comprehensions aren't very useful if you're working with iterators 
-that return an infinite or a very large stream of data.
+comprehensions aren't very useful if you're working with iterators
+that return an infinite or a very large stream of data. Later we'll
+discuss generator expressions, a feature that provides similar
+capabilities as list comprehensions but can be used with infinite
+iterators.
 
 List comprehensions have the form::
 
@@ -396,6 +399,28 @@
 [ (x,y) for x in seq1 for y in seq2]
 
 
+Generator Expressions
+-----------------------
+
+Generator expressions are written like list comprehensions, but are
+surrounded by parentheses (\samp{()}) and not square brackets
+(\samp{[]}). The result of a generator expression
+is an iterator that returns the computed elements without 
+materializing a list containing them all.
+
+::
+
+ (line.strip() for line in line_list) =>
+ 'line 1', 'line 2'
+
+Generator expressions always have to be written inside parentheses, as
+in the above example. The parentheses signalling a function call also
+count, so if you want to create an iterator that will be immediately
+passed to a function you could write::
+
+	obj_total = sum(obj.count for obj in list_all_objects())
+
+
 Generators
 -----------------------
 
@@ -691,7 +716,7 @@
 ::
 
 enumerate(['subject', 'verb', 'object']) =>
- [(0, 'subject'), (1, 'verb'), (2, 'object')]
+ (0, 'subject'), (1, 'verb'), (2, 'object')
 
 ``enumerate()`` is often used when looping through a list 
 and recording the indexes at which certain conditions are met::
@@ -1118,3 +1143,14 @@
 sys.stdout.write(str(elem))
 sys.stdout.write(', ')
 print elem[-1]
+
+
+References
+--------------------
+
+SICP
+
+Relevant manual sections
+
+XXX
+


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /