Python高阶函数和匿名函数(python匿名函数和普通函数的区别)

网友投稿 637 2022-09-22

Python高阶函数和匿名函数(python匿名函数和普通函数的区别)

Python高阶函数和匿名函数(python匿名函数和普通函数的区别)

map()

map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

输出结果:

可以看出,map让函数func作用于列表的每一项,使列表的每一项都被函数func执行一次,即列表的每一项都进行平方。其返回值是map类型。

reduce()

reduce函数必须接收两个参数,把一个函数作用在一个序列[x1, x2, x3, ...]上,然后再把结果继续和序列的下一个元素做累积计算。

输出结果:

和map不同,虽然reduce也是作用于每个元素,但是reduce的作用结果要用在下次和另一个元素做累积计算。

map()和reduce()的结合使用

输出结果:

可以将字符串类型转换为int类型

filter()

filter()函数用于过滤序列,接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

输出结果:

sorted()

sorted()函数也是一个高阶函数,在列表的学习中初步接触了sorted(),但其实它还可以接收一个key函数来实现自定义的排序。

key指定的函数将作用于被排序对象的每一个元素上,并根据key函数返回的结果进行排序。

输出结果:

同样的,sorted()也可以对元组和字典进行排序

输出结果:

当然,也能以values的值来排序,对字典的排序与元组类似,但返回值不同。

输出结果:

可以看到,不管是以key值进行排序,还是以value值进行排序,排序结果只返回对应顺序的key值。

匿名函数

输出结果:

上面就是一个匿名函数的使用,匿名函数 lambda x: x * x 实际上就是:

只是在这里没有显式地定义函数,这样因为函数没有名字,不必担心函数名冲突,而且代码看起来也简洁。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:strace使用方法
下一篇:《UNIX环境高级编程》apue.h 头文件的问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~