python高阶函数实例_python高阶函数和匿名函数

1.高阶函数

把函数当成一个参数的函数

例子:

abs函数作为一个参数

defadd(a,b,f):

returnf(a) + f(b)

print(add(10,-10,abs))

结果:

20

常用内置高阶函数

1)map()函数:接收一个函数和列表,并将列表的值传给函数,最后将结果以列表形式输出

例子:

defpower(x):

returnx*x

list1=[1,2,3,4,5,6,7,8,9,10]

printmap(power,list1)

结果:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2)reduce()函数:和map()类似,也是内置高阶函数,但函数f需接收两个变量;第二次调用把list中第一次处理的值(list中第1和第2个参数之和),当做第1个参数继续,依次类推

例子:

defadd(x,y):

returnx+y

list1=[1,2,3,4,5,6]

printreduce(add,list1)

结果:

21

3)filter()函数:类似map(),根据f函数返回的True或者False,过滤值,最后输出列表

例子:

defis_even(x):

returnx%2==0

list1 = [1,2,3,4,5,6,7,8,9,10]

printfilter(is_even,list1)

结果:

[2, 4, 6, 8, 10]

4) sorted()函数:返回一个经过排序的列表

sorted(...)

sorted(iterable, cmp=None, key=None,reverse=False) --> new sorted list

三个可选参数:

cmp:指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数。默认值为None。

key:指定接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。

reverse:是一个布尔值。如果设置为True,列表元素将被倒序排列。

例子:

mm =dict(a=1,b=3,c=2)

print(mm)

foriinmm:

print(i)

forjinmm.iteritems():

print(j)

test =sorted(mm.iteritems(),key=lambdax:x[1])

print(test)

结果:

{'a': 1, 'c': 2, 'b': 3}

a

c

b

('a', 1)

('c', 2)

('b', 3)

[('a', 1), ('c', 2), ('b', 3)]

说明:lambdax:x[1] 为匿名函数

2.匿名函数

没有名字,可以快速定义单行的最小函数

例子:

f =lambdax,y:x*y

printf(10,20)

结果:

200

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值