Search code examples
python-3.xreduceone-liner

oneliner using reduce in python


I'm trying to take my Python skills (beginner) to the next level. and I'm trying to teach myself the functools.reduce() function

So I'm running every time into the same error; I'd appreciate if someone could explain to me what is the problem in my code

I'm trying to build a simple func that receive a number and return the sum of number digits

import functools
def sum_using_reduce(number):
    return str(number)[0] + str(number)[1]
number = 104
print(functools.reduce(sum_using_reduce, number))

Solution

  • Try this:

    number = 104
    functools.reduce(lambda x, y: x+y, [int(i) for i in str(number)])
    

    Output: 5

    Using your example:

    import functools
    
    
    def sum_using_reduce(x, y) -> int:
        return x + y
    
    
    print(functools.reduce(sum_using_reduce, [int(i) for i in str(105)]))
    

    Output: 6

    Another approach:

    import functools
    
    
    def sum_using_reduce(number: int) -> int:
        return functools.reduce(lambda x, y: x+y, [int(i) for i in str(number)])
    
    
    print(sum_using_reduce(124))
    

    Output: 7