Python 高阶函数
一个函数就可以接收另一个函数作为参数,这种函数就称为高阶函数。
Map() 函数用法
map(function, iterable,....)
功能
将第一个参数function 依次作用在参数可迭代对象的每个元素上, 返回包含每次 function 函数返回值的新的迭代器
参数
function — 函数, 有两个参数
iterable – 一个或 多个可迭代对象(如: 序列)
返回值
Python 3.x 返回迭代器
Demo:
def f(x):
return x*x
r = map(f, [1,2,3,4,5,6,7,8,9])
print(list(r))
运行结果
[1, 4, 9, 16, 25, 36, 49, 64, 81]
Reduce () 函数语法
reduce(function, iterable[, initializer])
功能:
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
其效果类似:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
参数
function --函数,有两个参数
iterable -- 可迭代对象
initializer -- 可选, 初始参数
返回值
返回函数的计算结果
Demo
from functools import reduce
def add(x, y):
return x + y
r = reduce(add, [1, 3, 5, 7, 9])
print(r)
运行结果:
25
filter() 函数
filter(function, iterable)
功能
该接收两个参数, 第一个参数为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False , 最后将返回True 的元素放到迭代器对象中
参数
function – 判断函数
iterable – 可迭代对象(如: 序列)
返回值:
返回一个迭代对象
def is_add(n):
return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
运行结果:
[1, 3, 5, 7, 9]
sorted() 函数
sorted(iterable, key=abs, reverse=False)
功能
对所有可迭代的对象进行排序操作
参数
iterable -- 可迭代对象
key --key 指定的函数将作用于可迭代对象的每一个元素,并根据key 函数返回的结果进行排序
reverse -- 排序规则 ,reverse = True 降序 ,reverse = False 升序(默认)
返回值
返回重新排序的列表
Lambda 表达式
只有一行代码的函数就是lanbda 表达式
lambda 输入: 输出
f = lambda x: x *x
print(f(5))
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/77040.html