from functools import reduce


def get_sum(l):
    """
    根据给定的列表,求里面哥哥数字综合
    :param l: list/type 里面是整数
    :return: 列表所有项的和
    """
    rest = 0
    for i in l:
        rest += i
    return rest

def get_sum_py(l):
    """
    使用python内置的函数sum()进行求和
    :param l:
    :return:
    """
    return sum(l)

def f(a,b):
    """求两个数的和"""
    return a+b

def get_sum_reduce(l):
    """
    使用reduce函数来求和
    :param l: 
    :return: 
    """
    return reduce(f,l)

def get_sum_reduceLamdba(l):
    """
    使用reduce函数+lambda表达式求和
    :param l: 
    :return: 
    """
    return reduce(lambda x,y:x+y,l)

if __name__ == "__main__":
    l = [1, 2, 3, 4, 5, 6, 7, 8]
    result = get_sum(l)
    print(result)
    print("--------------")
    result2 = get_sum_py(l)
    print(result2)
    print("--------------")
    result3 = get_sum_reduce(l)
    print(result3)
    print("--------------")
    result4 = get_sum_reduceLamdba(l)
    print(result4)