Each Answer to this Q is separated by one/two green lines.
I am pretty sure there is a common idiom, but I couldn’t find it with Google Search…
Here is what I want to do (in Java):
// Applies the predicate to all elements of the iterable, and returns // true if all evaluated to true, otherwise false boolean allTrue = Iterables.all(someIterable, somePredicate);
How is this done “Pythonic” in Python?
Also would be great if I can get answer for this as well:
// Returns true if any of the elements return true for the predicate boolean anyTrue = Iterables.any(someIterable, somePredicate);
Do you mean something like:
allTrue = all(somePredicate(elem) for elem in someIterable) anyTrue = any(somePredicate(elem) for elem in someIterable)
allTrue = all(map(predicate, iterable)) anyTrue = any(map(predicate, iterable))
Here is an example that checks if a list contains all zeros:
x = [0, 0, 0] all(map(lambda v: v==0, x)) # Evaluates to True x = [0, 1, 0] all(map(lambda v: v==0, x)) # Evaluates to False
Alternative you can also do:
all(v == 0 for v in x)
You can use ‘all’ and ‘any’ builtin functions in Python:
somePredicate is a function and
all will check if bool() of that element is True.