[Python-Dev] Adding any() and all()
Raymond Hettinger
python at rcn.com
Fri Mar 11 04:22:45 CET 2005
[Bill Janssen]
> I think I'd want them to be:
>
> def any(S):
> for x in S:
> if x:
> return x
> return S[-1]
>
> def all(S):
> for x in S:
> if not x:
> return x
> return S[-1]
>
> Or perhaps these should be called "first" and "last".
-1
Over time, I've gotten feedback about these and other itertools recipes.
No one has objected to the True/False return values in those recipes or
in Guido's version.
Guido's version matches the normal expectation of any/all being a
predicate. Also, it avoids the kind of errors/confusion that people
currently experience with Python's unique implementation of "and" and
"or".
Returning the last element is not evil; it's just weird, unexpected, and
non-obvious. Resist the urge to get tricky with this one.
Raymond Hettinger
More information about the Python-Dev
mailing list