From 5e3c5fc703c2b6c171b3f9f06aa0e30b1d057465 Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Sat, 11 Oct 2003 03:20:51 +0000 Subject: [PATCH] Faster implementations for all/any. --- src/fix.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/fix.py b/src/fix.py index 30138f091..9d7c59f86 100644 --- a/src/fix.py +++ b/src/fix.py @@ -107,21 +107,17 @@ def partition(p, L): def any(p, seq): """Returns true if any element in seq satisfies predicate p.""" - if p is None: - p = bool - for elt in seq: - if p(elt): - return True - return False + for elt in itertools.ifilter(p, seq): + return True + else: + return False def all(p, seq): """Returns true if all elements in seq satisfy predicate p.""" - if p is None: - p = bool - for elt in seq: - if not p(elt): - return False - return True + for elt in itertools.ifilterfalse(p, seq): + return False + else: + return True def rsplit(s, sep=None, maxsplit=-1): """Equivalent to str.split, except splitting from the right."""