且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

python高阶函数和匿名函数

更新时间:2022-09-17 08:10:15

高阶函数

允许将函数本身作为参数传入另一个函数;允许返回一个函数。允许返回一个函数。

map()函数

map的第一个参数为自定义函数,第二个参数为自定义可迭代对象

例子

#定义一个函数f2求平方,使用map函数,求list1的值的平方,list1平方规则按照f2函数执行,返回结果类型为list。

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

def f2(x):

    return x*x 

list2 = map(f2, list1)

print type(list2)

print list2

reduce()函数

必须接收两个参数,最多接收三个参数。

例子

#定义一个函数f求和,使用reduce函数,求list1相加的值,再加20。list1相加规则按照f函数执行,先执行1+2,再用1+2的值与3相加,以此类推

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

def f(x, y):

    return x+y

print reduce(f,list1,20)

filter()函数

会将可迭代对象元素传入,如果返回true则保留,如果返回false则不保留元素

例子:

a = [1, 2, 3, 4, 5, 6, 7]

def f(x):

    return x%2 == 1

b = list(filter(f,a))

#python3.5.1需要将filter转换为list再进行输出

print (b)

sorted()函数

可以针对所有的可迭代对象进行排序,返回一个新的list

使用方法:

sorted(...)  

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

cmp:有两个参数,参数的值都是从可迭代对象中取出,此函数的规则:大于返回1,小于返回-1,等于返回0

key:具体的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素进行排序

reverse:判断是否反转,默认情况下不反转

例子

dic1 = {'Q':7, 'W':8, 'E':9}

print(dic1)

for key, value in dic1.items():

    print(key, value)

d = sorted(dic1.items())

print(d)

匿名函数

不需要显示定义的函数,没有名字的函数

例子

def f2(x,y):

    return x+y

等于

c = lambda x1,y1:x1+y1

print(c(4,5))

例子

def build(x2, y2):

    return lambda: x2 * x2 + y2 * y2




本文转自 粗粮面包 51CTO博客,原文链接:http://blog.51cto.com/culiangmianbao/1978589,如需转载请自行联系原作者