[Python-checkins] python/nondist/sandbox/itertools libitertools.tex,1.12,1.13 test_itertools.py,1.8,1.9

rhettinger@users.sourceforge.net rhettinger@users.sourceforge.net
2003年1月27日 18:02:29 -0800


Update of /cvsroot/python/python/nondist/sandbox/itertools
In directory sc8-pr-cvs1:/tmp/cvs-serv24656
Modified Files:
	libitertools.tex test_itertools.py 
Log Message:
Sync-up python definition of ifilter() with the C definition. Make the
related docstrings match and added a test for the case where func is None.
Fixed spelling in docs.
Index: libitertools.tex
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/itertools/libitertools.tex,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** libitertools.tex	28 Jan 2003 01:05:29 -0000	1.12
--- libitertools.tex	28 Jan 2003 02:02:25 -0000	1.13
***************
*** 23,27 ****
 For instance, SML provides a tabulation tool: \code{tabulate(\var{f})}
 which produces a sequence \code{f(0), f(1), ...}. This toolbox
! takes a diffenct approach of providing \function{imap()} and
 \function{count()} which can be combined to form
 \code{imap(\var{f}, count())} and produce an equivalent result.
--- 23,27 ----
 For instance, SML provides a tabulation tool: \code{tabulate(\var{f})}
 which produces a sequence \code{f(0), f(1), ...}. This toolbox
! takes a different approach of providing \function{imap()} and
 \function{count()} which can be combined to form
 \code{imap(\var{f}, count())} and produce an equivalent result.
***************
*** 34,38 ****
 loops over the sequence elements and then starts again when the
 sequence is exhausted. The surprising behavior is the need for
! significant auxilliary storage (unusual for iterators). Also, it
 is trivially implemented in python with almost no performance
 penalty.
--- 34,38 ----
 loops over the sequence elements and then starts again when the
 sequence is exhausted. The surprising behavior is the need for
! significant auxiliary storage (unusual for iterators). Also, it
 is trivially implemented in python with almost no performance
 penalty.
***************
*** 105,108 ****
--- 105,111 ----
 is \code{True}, then reverse the process and pass through only those
 elements for which the function evaluates to \code{False}.
+ If function is \code{None}, return the items that are true (unless
+ \var{invert} is set).
+ 
 Equivalent to:
 
***************
*** 112,116 ****
 while True:
 x = iterable.next()
! b = bool(func(x))
 if not invert and b or invert and not b:
 yield x
--- 115,122 ----
 while True:
 x = iterable.next()
! if func is None:
! b = bool(x)
! else:
! b = bool(func(x))
 if not invert and b or invert and not b:
 yield x
***************
*** 141,145 ****
 \begin{funcdesc}{islice}{iterable, \optional{start,} stop \optional{, step}}
 Make an iterator that returns selected elements from the iterable.
! If \var{start} is non-zero, then elements from the iterable are skiped
 until start is reached. Afterward, elements are returned consecutively
 unless \var{step} is set higher than one which results in items being
--- 147,151 ----
 \begin{funcdesc}{islice}{iterable, \optional{start,} stop \optional{, step}}
 Make an iterator that returns selected elements from the iterable.
! If \var{start} is non-zero, then elements from the iterable are skipped
 until start is reached. Afterward, elements are returned consecutively
 unless \var{step} is set higher than one which results in items being
Index: test_itertools.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/itertools/test_itertools.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** test_itertools.py	28 Jan 2003 01:05:29 -0000	1.8
--- test_itertools.py	28 Jan 2003 02:02:26 -0000	1.9
***************
*** 14,17 ****
--- 14,18 ----
 self.assertEqual(list(ifilter(isEven, range(6))), [0,2,4])
 self.assertEqual(list(ifilter(isEven, range(6), True)), [1,3,5])
+ self.assertEqual(list(ifilter(None, [0,1,0,2,0])), [1,2])
 self.assertRaises(TypeError, ifilter)
 self.assertRaises(TypeError, ifilter, 3)

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