python 高阶函数

Posted Frank_Shen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 高阶函数相关的知识,希望对你有一定的参考价值。

filiter()

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

res = filter(lambda x: x > 5, [1, 2, 10, 20])
for i in res:
    print(i)

10
20

 

map() 

map()函数至少接收两个参数,一个为函数,其他是可迭代对象,map将传入的函数依次作用到可迭代对象的每个元素,并把结果作为新的Iterator返回。
res = map(abs, [-1, -2, -3, -4, -5])
for i in res:
    print(i)

1
2
3
4
5

reduce()

reduce()函数接受三个参数, 第一个为函数, 第二个为序列, 把序列前两个元素传给函数参数,函数加工后,然后把得到的结果和第三个元素作为两个参数传给函数参数, 函数加工后得到的结果又和第四个元素作为两个参数传给函数参数。

from functools import reduce
res = reduce(lambda x, y: x*10+y, [1, 3, 5, 7, 9])
print(res)

13579

lambda

关键字lambda表示匿名函数,冒号前面的x表示函数参数, 冒号后面为函数体, 就是函数体只能有一个表达式, 返回值为该表达式的结果

f = lambda x: x*x
print(f(2))

4

partial

functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单

import functools
int2 = functools.partial(int, base=8)
print(int2(‘64‘)) # 按8进制转换

52

sorted

sorted 排序函数 接受三个参数,可迭代对象, key:key 是带一个参数的函数, reverse是否反转

print(sorted([1, -2, 0, 4, -3], key=abs, reverse=True))
[4, -3, -2, 1, 0]

  

 

以上是关于python 高阶函数的主要内容,如果未能解决你的问题,请参考以下文章

python之高阶函数

python中的高阶函数

python专题高阶函数

python专题高阶函数

js数组高阶方法reduce经典用法代码分享

js数组高阶方法reduce经典用法代码分享