Equivalent for inject() in Python?
functional-programming, python
Solution
To determine if every element is odd, I'd use `all()`
def is_odd(x):
return x%2==1
result = all(is_odd(x) for x in [1,3,5,7])
In general, however, Ruby's `inject` is most like Python's `reduce()`:
result = reduce(lambda x,y: x and y%2==1, [1,3,5,7], True)
`all()` is preferred in this case because it will be able to escape the loop once it finds a `False`-like value, whereas the `reduce` solution would have to process the entire list to return an answer.
Problem
In Ruby, I'm used to using Enumerable#inject for going through a list or other structure and coming back with some conclusion about it. For example, ``` [1,3,5,7].inject(true) {|allOdd, n| allOdd && n % 2 == 1} ``` to determine if every element in the array is odd. What would be the appropriate way to accomplish the same thing in Python?