Home > katas > Sum of positive (8kyu) [Python]
Sum of positive (8kyu) [Python]
Chek kata on Codewars
Description:
You get an array of numbers, return the sum of all of the positives ones.
Example [1,-4,7,12] => 1 + 7 + 12 = 20
Note: if there is nothing to sum, the sum is default to 0.
Solution 1
Let's use reduce
method to solve this task.
It executes a reducer function (that you provide) on each element of the array, resulting in single output value.
It is almost a textbook example for reducer.
import functools
def positive_sum(arr):
return functools.reduce(lambda accumulator, current: accumulator + (current if current > 0 else 0), arr, 0)
Solution 2
Another approach will be to loop over the array and sum all positive numbers.
def positive_sum(arr):
sum = 0
for number in arr:
if number > 0:
sum += number
return sum
Solution 3
Or to use sum()
. This is an inbuilt function in python that adds all the elements in list, set and tuples and returns the value.
def positive_sum(arr):
return sum(number for number in arr if number > 0)