Python编程 匿名函数,高阶函数

199 阅读2分钟

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情

前言

本章将会讲解Python编程中的匿名函数.了解用法。

一.匿名函数

1.匿名函数介绍

匿名函数指一类无须定义标识符的函数或子程序。Python用lambda语法定义匿名函数,只需用表达式而无需申明。

在python中,不通过def来声明函数名字,而是通过 lambda 关键字来定义的函数称为匿名函数。

lambda函数能接收任何数量(可以是0个)的参数,但只能返回一个表达式的值,lambda函数是一个函数对象,直接赋值给一个变量,这个变量就成了一个函数对象。

语法: lambda x:xx*

图片.png

 def f(x):
     return x * x
 
 
 print(f(3))
 
 
 lambda 形参:返回值
 f = lambda x, y: x * y
 print(f(2, 5))
 
 
 from functools import reduce
 print(reduce(lambda x, y: x*y, range(1,7)))

匿名函数应用

匿名函数作返回值

图片.png

 def fx(i, j):
     # 返回的匿名函数
     return lambda :i*j
 
 
f = fx(6, 6)    # lambda :i*j
print(f())      # 函数只有在调用时才会执行
 

匿名函数作实参

图片.png

 def test(a, b, func):
     res = func(a, b)    # 11 + 22
     return res
 
 
 nums = test(11, 22, lambda x,y:x+y)
 print(nums)

例子:

将 lis = [4,-2,3,1] --> [1,-2,3,4] infors = [{'name':'qian' , 'age':28},{'name':'amy' , 'age':20},{'name':j ames' , 'age':25}]

以name对应的值进行排序

# [4,2,3,1] --> [1,2,3,4] --> [1,-2,3,4]
li = [4, -2, 3, 1]
 
# key:指定排序规则,排序之后返回原元素
li.sort(key=abs)
print(li)

高阶函数

高阶函数的概念

高阶函数的英文名叫 Higher-Order Function.

高阶函数需满足以下二个条件:

本身是一个函数
参数是函数

定义:一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数

高阶函数需满足条件:

函数名 作为 参数传入

函数名 作为 返回值