]> granicus.if.org Git - python/commitdiff
Improve three recipes in the itertools docs.
authorRaymond Hettinger <python@rcn.com>
Thu, 23 Sep 2004 07:27:39 +0000 (07:27 +0000)
committerRaymond Hettinger <python@rcn.com>
Thu, 23 Sep 2004 07:27:39 +0000 (07:27 +0000)
Doc/lib/libitertools.tex
Lib/test/test_itertools.py

index df73561ceb63a6f69c810901fe72e98f18f55358..be53015f7cd979020b7a134aaab93c8068d54e9b 100644 (file)
@@ -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"
index e4c29ad33b3ef4fe0e85d8d42f8812a581b0b547..6ce758a99eba6c0481d4c6ef9377a90c99843d01 100644 (file)
@@ -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"