python学习[第十八篇] 函数二

python学习[第十八篇] 函数二

函数式编程

匿名函数与lambda

lambda [arg1,[arg2,arg3,...,argN]: expression

python允许lambda关键字创造匿名函数。匿名函数不需要以标准的方式来声明,比如def语句。然后作为函数它可以有参数。一个完整的lambda语句代表了一个表达式,这个表达式的定义体必须和声明放在同一行。参数是可选的,如果使用参数的话,参数通常也是表达式的一部分。

虽然lambda是一个函数的单行版本,lambda表达式运作起来就像一个函数,当被调用时,创建一个框架对象。

内建函数 apply() filter() map() reduce()

apply(func,[,nkw][,kw]) 用可选的参数来调用func,nkw 为非关键字参数,kw为关键字参数;返回值是函数调用的返回值。

filter(func,seq) 调用一个布尔函数func来迭代遍历每个seq的元素,返回一个是func返回值为True的元素的序列。

map(func,seq1[,seq2]) 将函数func作用域给定序列s的每个元素,并用一个列表来提供返回值,如果func为None,func表现为一个身份函数,返回一个含有每个序列中元素集合的n个元组的列表。

filter 给定一个对象的序列和一个过滤函数,每个序列元素都通过这个过滤器进行筛选,保留函数返回威震的对象。filter函数为已知的序列的每个元素调用给定布尔函数。每个filter返回的非零(true)值元素添加到一个列表中。返回的对象是一个从原始队列中的过滤后的队列。

猜你喜欢

转载自www.cnblogs.com/ryanpan/p/9382399.html
今日推荐