On Sun, 2009-04-12 at 04:00 +0000, John O'Hagan wrote: > Hi, > > I was getting some surprising false positives as a result of not expecting > this: > > all(element in item for item in iterable) > > to return True when 'iterable' is empty. > > I guess it goes into hairy Boolean territory trying to decide if an element > is > in an item that doesn't exist (if that's what's happening), but I would have > thought not. It seems inconsistent with the behaviour of > > any(element in item for item in iterable) > > which returns False when 'iterable' is empty. > >From the docs:
all(iterable) Return True if all elements of the iterable are true. Equivalent to: def all(iterable): for element in iterable: if not element: return False return True any(iterable) Return True if any element of the iterable is true. Equivalent to: def any(iterable): for element in iterable: if element: return True return False > Sorry if this has come up before, but 'any' and 'all' make for fruitless > googling! Try Googling for: "any site:docs.python.org" -- http://mail.python.org/mailman/listinfo/python-list