Python - 匿名函数

本章内容

  1. 匿名函数lambda
  2. 匿名函数运用

一、匿名函数lambda

我们所说的匿名函数就是lambda , lambda到底是什么?

lambda是一个表达式 , 而并非语句 , 所以可以出现在def语句所不能出现的位置 , 并且不需要指定函数名; lambda表达式还可以提高代码的可读性 , 简化代码

lambda表达式主要用于写一些简单的方法 , 对于复杂的还是用函数写的好

示例:

 1 # 普通函数
 2 def func(x):
 3     return x * x
 4 print(func(5))
 5 -----------------------
 6 # 匿名函数,自带return功能
 7 func = lambda x : x * x
 8 print(func(5))
 9 ---------------------------------------------------
10 func = lambda arguments : expression using argument 

使用匿名函数可以减少命名空间使用内存 , 因为没有函数名

可直接后面传递参数

1 >>> (lambda x,y : x if x > y else y)(1,2)
2 2

非固定参数

1 >>> (lambda *args : args)(1,2,3,4)
2 (1, 2, 3, 4)

PS : 匿名函数主要是与其他函数搭配使用

二、匿名函数运用

结合使用

map , 计算平方

1 # map后返回的对象为map对象,所以利用list方法进行强转
2 >>> list(map(lambda x : x * x, [1,2,3,4]))
3 [1,4,9,16]

filter , 筛选偶数

1 >>> list(filter(lambda x : x % 2 == 0,[1,2,3,4]))
2 [2,4]

reduce , 求和

1 # python3中已经没有reduce方法了,调用需要导入
2 >>> from functools import reduce
3 # reduce(function, sequence, initial=None)
4 >>> reduce(lambda x , y : x + y, [1,2,3,4,5],100)
5 115

嵌套使用

版本一

1 def func(x):
2     return lambda x : x + y
3 f = func(2)
4 print(f(2))
5 # output: 4

版本二

1 func = lambda x : (lambda y: x + y)
2 y = func(1)
3 y(2)
4 # output: 3
时间: 2024-10-13 14:42:28

Python - 匿名函数的相关文章

python匿名函数(lambda)

简单来说,编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数: >>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])) [1, 4, 9,

Python匿名函数lambda

lambda是匿名函数,形式为 lambda x : x * x 等价于 def func(x): return x * x 其中"x"相当于函数参数, 表示式"x*x"相当于返回值,所以lambda不需要也不能有return. 匿名函数本身是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数.匿名函数适用于编写简单的函数,因为不需要函数命令,不会造成函数名冲突. #!/usr/bin/python #coding=utf-8 import os,

Python匿名函数

高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,以较为复杂的写法是这样的: def f(x): return x*x print map(f,[1, 2, 3, 4, 5, 6, 7, 8, 9]) 使用匿名函数,可以不定义函数名,直接创建一个函数对象,进而简化代码 print map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])

Python匿名函数详解

转载自杰瑞的专栏 lambda这个名称来自于LISP,而LISP则是从lambda calculus(一种符号逻辑形式)取这个名称的.在Python中, lambda作为一个关键字,作为引入表达式的语法.想比较def函数,lambda是单一的表达式,而不是语句块! 你仅能够在lambda中封装有限的业务逻辑,这样设计的目的:让lambda纯粹为了编写简单的函数而设计,def则 专注于处理更大的业务. 在编程语言中,函数的应用: 1. 代码块重复,这时候必须考虑用到函数,降低程序的冗余度 2. 代

python匿名函数 与 内置函数

一.匿名函数  1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序. 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是参数,可以有多个,用逗号隔开:冒号右边的为表达式,需要注意的是只能有一个表达式.由于lambda返回的是函数对象(构建的是一个函数对象),所以需要定义一个变量去接收.  3.注意点:lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值.lambda 函数不能包含命令,包含

Python— 匿名函数

匿名函数 匿名函数:为了解决那些功能很简单的需求而设计的  “一句话函数” #初始代码 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc = lambda n:n**n print(calc(10)) 上图是对calc这个匿名函数的分析 # 关于匿名函数格式的说明 函数名 = lambda 参数 :返回值(相当于函数体) # 参数可以有多个,用逗号隔开 # 匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值 # 返回值和

python 匿名函数&装饰器

匿名函数 关键字lambda表示匿名函数,冒号前面的x表示函数参数匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. >>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))[1, 4, 9, 16, 25, 36, 49, 64, 81] 可以把匿名函数赋值给一个变量,再利用变量来调用该函数:>>> f = lambda x: x * x>>> f<

python匿名函数和递归

lambda 匿名函数: 为了解决一些简单的需求而设计的一句话函数 lambda函数不需要def来声明,一句话就可以声明出一个函数 语法: 函数名 = lambda 参数: 返回值 需要注意的是: 1. 函数的参数可以有多个,多个参数之间用逗号隔开 2. 匿名函数不管多复杂,只能写一行,切逻辑结束后直接返回数据 2.返回值和正常的函数一样,可以是任意数据类型 匿名函数并不是说一定没有名字,这里前面的变量就是一个函数名,说他是匿名   原因是我们通过__name__查看的时候是没有名字的,统一叫l

[ python ] 匿名函数和高阶函数

匿名函数 描述:    关键字 lambda 定义的函数    语法: 函数名 = lambda 参数:返回值 返回值:    函数返回结果值 实例: 一个参数的匿名函数: func = lambda x: x*x f = func(2) print(f) # 执行结果: # 4 多个参数的匿名函数: func = lambda x, y: x+y f = func(1, 2) print(f) # 执行结果: # 3 高阶函数 (1)map 描述:    map()会根据提供的函数对指定序列做

Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法

一. lamda匿名函数 为了解决一些简单的需求而设计的一句话函数 # 计算n的n次方 def func(n): return n**n print(func(10)) f = lambda n: n**n print(f(10)) lambda表示的是匿名函数. 不需要用def来声明, 一句话就可以声明出一个函数 语法: 函数名 = lambda 参数: 返回值 注意: 1. 函数的参数可以有多个. 多个参数之间用逗号隔开 2. 匿名函数不管多复杂. 只能写一行, 且逻辑结束后直接返回数据 3