This would be similar to 'key' argument already available for min(), max() and sorted() and would let user decide what must be considered True and what not.
You're missing some brackets or parens there:
all([a, b, c, ...], key=callable)
<snip>
> Thoughts?
I see negligible advantage over just writing the generator expression directly:
all(callable(item) for item in iterable)
=== all(iterable, key=callable)
(which is about comparable to the difference between a map()
invocation vs. a list comprehension, and the choice there seems to be
largely a matter of taste)
min() & max() return the result object satisfying the constraint, so
the `key` argument makes sense for when you want to e.g. find the
cheapest house rather than the price of the cheapest house.
In contrast, any() & all() *always* just return a simple bool result,
not the object whose truthiness determined the predicate's result, so
`key` would be pointless since the result gets converted to a plain
bool anyway (or at least, we can conceptualize the implementation as
if it worked that way).
Cheers,
Chris
_______________________________________________
Python-ideas mailing list
Python...@python.org
http://mail.python.org/mailman/listinfo/python-ideas