python专题高阶函数
2021-01-27 10:13
标签:操作 匿名函数 fun sorted ret one map 元素 函数返回值 本篇内容是关于一些高阶函数基本使用的知识,其目的主要是简化代码,更加精炼; 公众号:知识追寻者 知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;) 函数式编程为高阶函数(Higher-order function);函数式编程是指将一个函数作为另一个函数参数的编程方式;一般情况下使用函数式编程通常都会使用到匿名函数简化代码; 如下所示,定义过滤函数filter,如果函数值大于5就返回入参,否则返回None; 将 filter 函数 作为 getNumber 函数的第一个入参,在函数体调用filter函数对第二个入参arrs进行值的过滤操作; 最后对filter(num)进行判定,如果是None不入新的列表,否则加入列表; 输出 常用的内置高阶函数如下; map函数接受两个参数,一个是函数,一个是序列;map将传入的函数依次作用于序列中的每个元素,将结果作为新的列表返回; 如下示例,传入匿名函数,其作用是对列表list中的每个值进行乘2,对新的值组成列表并返回; 输出 reduce():函数接收两个参数,一个是函数,另一个是序列;函数必须接收两个参数,reduce将序列的前一个参数和后一个参数进行累计计算的结果返回; 如下示例 将 0,2,4,6,8 进行累加的结果进行返回; filter():筛选过滤函数;将传入的函数,依次作用于每个元素,如果函数返回值是True就保留否则丢弃; 如下所示,对[0,10)的数字进行判定,如果能被2整除就保留,否则丢弃; 输出 sorted() 是排序函数 , 其参数如下 如下示例,key的函数进对列表中的每个元素进行作用,对运算后的结果进行大小比较,默认是升序; 输出 python专题高阶函数 标签:操作 匿名函数 fun sorted ret one map 元素 函数返回值 原文地址:https://www.cnblogs.com/zszxz/p/12846071.html一 前言
二 高阶函数
2.1 高阶函数概念
2.2 高阶函数示例
# -*- coding: utf-8 -*-
# 对数组 arr 进行过滤
def getNumber(filter,arrs):
return [ filter(num) for num in arrs if filter(num) is not None]
# 定义过滤函数
def filter(num):
if num > 5:
return num
else:
pass
result = getNumber(filter,list(range(0,10,2)))
print(result)
[6, 8]
三 内置函数
3.1 map()
anno_map = map(lambda x: x * 2, list(range(0,10,2)))
print(list(anno_map))
[0, 4, 8, 12, 16]
3.2 reduce()
from functools import reduce
anno_reduce = reduce(lambda x, y: x + y, range(0,10,2))
# 20
print(anno_reduce)
3.3 filter()
anno_filter = filter(lambda x: x % 2 == 0,list(range(10)) )
print(list(anno_filter))
[0, 2, 4, 6, 8]
3.4 sorted()
iterable
是一个序列key
可计算的排序函数,用于自定义排序;reverse
排序规则,reverse = False 升序(默认),reverse = True降序;anno_sorted = sorted([2,1,5,3,7], key=lambda x: x * x)
print(anno_sorted)
[1, 2, 3, 5, 7]