Python进阶-常用的高阶函数

    科技2022-07-11  92

    filter函数的使用

    lambda函数的使用

    def f(n): """判断给定的数是不是奇数""" return n % 2 != 0 def use_filer(l): """ 获取指定列表元组中的奇数 :param l: list/tuple 要过滤的数据 :return: 过滤好的奇数列表 """ rest = filter(lambda n: n % 2 != 0, l) # rest = filter(f, l) return rest if __name__ == '__main__': l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] rest = use_filer(l) print(rest) print(list(rest))

    map函数的使用

    def pow_number(l): """ 根据给定的列表数据,计算里面每一项的立方 :param l: list/type int 类型的列表或者是元组 :return: 原来列表中的每一项的立方 """ rest_list = [] for x in l: rest_list.append(x * x * x) return rest_list def f(n): """求给定数的立方""" return n * n * n def pow_num_use_map(l): """ 根据给定的列表数据,计算里面每一项的立方 :param l: list/type int 类型的列表或者是元组 :return: 原来列表中的每一项的立方 """ return map(f, l) def pow_num_use_lambda(l): """ 根据给定的列表数据,计算里面每一项的立方 :param l: list/type int 类型的列表或者是元组 :return: 原来列表中的每一项的立方 """ return map(lambda n: n * n * n, l) if __name__ == '__main__': l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] rest = pow_number(l) print(rest) print('---------------------------------------------------') rest_map = pow_num_use_map(l) print(list(rest_map)) rest_lambda = pow_num_use_lambda(l) print('---------------------------------------------------') print(list(rest_lambda))

    reduce函数的使用

    from sympy.core.compatibility import reduce def get_sum(l): """ 根据给定的列表,求里面各个数字的总和 :param l:list/type 里面是整数 :return:列表所有项的和 """ rest = 0 for i in l: rest += i return rest def get_sun_use_py(l): """ 使用python内置的sum()进行求和 :param l: :return: """ return sum(l) def f(m, n): """求两个数的和""" return m + n def get_sun_use_reduce(l): """ 使用reduce函数进行求和 :param l: :return: """ return reduce(f, l) def get_sum_use_lambda(l): """ 使用reduce + lambda进行求和 :param l: :return: """ return reduce(lambda m, n: m + n, l) if __name__ == '__main__': l = [1, 2, 3, 4, 5, 6, 7, 8, 9] rest = get_sum(l) print(rest) rest = get_sun_use_py(l) print(rest) rest = get_sun_use_reduce(l) print(rest) rest = get_sum_use_lambda(l) print(rest)

    编程练习

    使用filter函数,求0-50以内的偶数 任务

    定义use_filter函数函数体内:实现过滤偶数的功能 def use_filter(l): date = filter(lambda n:n % 2 == 0,l) return date if __name__ == '__main__': l = list((range(0,50))) print(l) date = use_filter(l) print(list(date))

    使用map函数,求元组中各个元素的5次方

    t = (32, 1024, 7776, 32768, 100000, 248832) def use_map(t): data = map(lambda n: pow(n, 5), t) return data data = use_map(t) print(list(data))

    请运用reduce函数,计算20!

    from sympy.core.compatibility import reduce l = list(range(1, 21)) print(l) def use_reduce(l): result = reduce(lambda m, n: m * n, l) return result result = use_reduce(l) print(result)
    Processed: 0.039, SQL: 8