From: Raymond Hettinger Date: Thu, 23 Sep 2004 07:27:39 +0000 (+0000) Subject: Improve three recipes in the itertools docs. X-Git-Tag: v2.4b1~212 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4533f1fb7fbf1fa8a9cb264ff6f1f0aba043e80d;p=python Improve three recipes in the itertools docs. --- diff --git a/Doc/lib/libitertools.tex b/Doc/lib/libitertools.tex index df73561ceb..be53015f7c 100644 --- a/Doc/lib/libitertools.tex +++ b/Doc/lib/libitertools.tex @@ -458,15 +458,21 @@ def nth(iterable, n): def all(seq, pred=bool): "Returns True if pred(x) is True for every element in the iterable" - return False not in imap(pred, seq) + for elem in ifilterfalse(pred, seq): + return False + return True def any(seq, pred=bool): - "Returns True if pred(x) is True at least one element in the iterable" - return True in imap(pred, seq) + "Returns True if pred(x) is True for at least one element in the iterable" + for elem in ifilter(pred, seq): + return True + return False def no(seq, pred=bool): "Returns True if pred(x) is False for every element in the iterable" - return True not in imap(pred, seq) + for elem in ifilter(pred, seq): + return False + return True def quantify(seq, pred=bool): "Count how many times the predicate is True in the sequence" diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index e4c29ad33b..6ce758a99e 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -746,15 +746,21 @@ Samuele >>> def all(seq, pred=bool): ... "Returns True if pred(x) is True for every element in the iterable" -... return False not in imap(pred, seq) +... for elem in ifilterfalse(pred, seq): +... return False +... return True >>> def any(seq, pred=bool): ... "Returns True if pred(x) is True for at least one element in the iterable" -... return True in imap(pred, seq) +... for elem in ifilter(pred, seq): +... return True +... return False >>> def no(seq, pred=bool): ... "Returns True if pred(x) is False for every element in the iterable" -... return True not in imap(pred, seq) +... for elem in ifilter(pred, seq): +... return False +... return True >>> def quantify(seq, pred=bool): ... "Count how many times the predicate is True in the sequence"