“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情”
前言
本章将会讲解Python编程中的匿名函数.了解用法。
一.匿名函数
1.匿名函数介绍
匿名函数指一类无须定义标识符的函数或子程序。Python用lambda语法定义匿名函数,只需用表达式而无需申明。
在python中,不通过def来声明函数名字,而是通过 lambda 关键字来定义的函数称为匿名函数。
lambda函数能接收任何数量(可以是0个)的参数,但只能返回一个表达式的值,lambda函数是一个函数对象,直接赋值给一个变量,这个变量就成了一个函数对象。
语法: lambda x:xx*
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)))
匿名函数应用
匿名函数作返回值
def fx(i, j):
# 返回的匿名函数
return lambda :i*j
f = fx(6, 6) # lambda :i*j
print(f()) # 函数只有在调用时才会执行
匿名函数作实参
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.
高阶函数需满足以下二个条件:
本身是一个函数
参数是函数
定义:一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数
高阶函数需满足条件:
函数名 作为 参数传入
函数名 作为 返回值