Python3——匿名函数

没有名字的函数,不用写return,返回值就是该表达式的结果。

语法:lambda 参数:方法(或三元运算)

lambda x:x*x等同于
def f(x):
    return x * x
#普通函数
def calc(x,y):
    if x > y:
        return x/y
    else:
        return x*y

#匿名函数,想要调用必须赋一个变量
func = lambda x,y: x/y if x>y else x*y  #匿名函数最多只支持三元运算,再复杂的判断不支持

print(calc(3,8))
print(calc(16,8))
print(func(3,8))
print(func(16,8))

 结果:

24
2.0
24
2.0

上面的例子好像看不出匿名函数和普通函数有什么区别,反而看上去会容易迷糊,那有什么用呢?

有些时候,不需要显式地定义函数,直接传入匿名函数更方便。

以map()函数为例:

现在需要一个列表里的所有元素自乘

a = list(range(10))
print(a)

#普通方法
for index,i in enumerate(a):
    a[index] = i*i
print(a)

#map()方法
print(list(map(lambda x:x*x,a)))

 结果:

#普通方法
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

#map()方法
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

可以看出同一个需求显然用匿名函数更加简洁

PS:map(func, *iterables)函数,第一个参数是个函数,第二个是用来操作的列表等元素集合

总结:

1、匿名函数不需要特意去定义一个函数名,可能这个函数只是某个地方临时用一下,后面就不会再用了

2、匿名函数一般都是和其他方法搭配使用,使得代码更加简洁

原文地址:https://www.cnblogs.com/everzin/p/8594866.html

时间: 2024-11-13 03:59:49

Python3——匿名函数的相关文章

Python3匿名函数字典排序、生成式与生成器、装饰器简介

1. 参数匿名函数字典排序 函数的参数: 参数类型:我们经常在看别人的代码中,经常出现def(*args,**kwargs)这样的表现形式; *args tuple(1,) **kwargs dict{"k" : "v"} fun(*args,**keargs) fun(1,2,3,4,5,a=10,b=40) 匿名函数: 匿名函数的定义:顾名思义就是没有名字的函数,那为什么要设立匿名函数,他有什么作用?lambda函数是一种快速付款定义机器智能单行的最小函数,可以

Python 内置函数补充匿名函数

Python3 匿名函数 定义一个函数与变量的定义非常相似,对于有名函数,必须通过变量名访问 def func(x,y,z=1): return x+y+z print(func(1,2,3)) 匿名函数定义:使用 lambda 来创建匿名函数 匿名函数1. 没有名字 2:函数体自带return 匿名函数 def func(x,y,z=1): return x+y+z print(lambda x,y,z=1:x+y+z) function <lambda> at 0x000000000346

【Python3之匿名函数及递归】

一.匿名函数及内置函数补充 1.语法 Python使用lambda关键字创造匿名函数.所谓匿名,意即不再使用def语句这样标准的形式定义一个函数. 语法: lambda [arg1[, arg2, ... argN]]: expression 例: 普通函数 def func(x,y): return x+y print(func) print(func(1,2)) 输出 <function func at 0x102b31f28> 3 等价的匿名函数 #匿名函数 f=lambda x,y:x

匿名函数与内置函数(python3入门)

1 #匿名函数:没有名字的函数,只有函数的内存地址,只能用一次就被回收 2 # lambda x,y:x>y #当表达式执行完毕后,自动return值 3 # 更多情况下,匿名函数都是和其他函数配合到一起使用 4 5 6 from functools import reduce 7 8 salaries = { 9 'egon':3000, 10 'alex':100000, 11 'wuxx':2000, 12 'yuanhao':40000 13 } 14 15 # print(max(sa

python3学习之匿名函数

在python中,对匿名函数提供了有限的支持. 语法:lambda  参数:表达式 def f(x):#普通函数写法 return x * x lambda x:x*x#匿名函数写法 关键字lambda表示是匿名函数,冒号前面是该函数的参数,冒号后面是函数的表达式 使用匿名函数有个好处,就是匿名函数没有名字,所以不用担心函数名冲突. 使用匿名函数有一个限制,就只能有一个表达式,不用写return,返回值就是该表达式的结果 此外匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量在利用变量来调

Python - 匿名函数

本章内容 匿名函数lambda 匿名函数运用 一.匿名函数lambda 我们所说的匿名函数就是lambda , lambda到底是什么? lambda是一个表达式 , 而并非语句 , 所以可以出现在def语句所不能出现的位置 , 并且不需要指定函数名; lambda表达式还可以提高代码的可读性 , 简化代码 lambda表达式主要用于写一些简单的方法 , 对于复杂的还是用函数写的好 示例: 1 # 普通函数 2 def func(x): 3 return x * x 4 print(func(5

python协程函数、递归、匿名函数与内置函数使用、模块与包

目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a.生成器相关python函数.装饰器.迭代器.生成器,我们是如何使用生成器的.一个生成器能暂停执行并返回一个中间的结果这就是 yield 语句的功能 : 返回一个中间值给调用者并暂停执行. 我们的调用方式为yeild 1的方式,此方式又称为生成器的语句形式. 而使用生成器的场景:使用生成器最好的场景就

内置函数与匿名函数

内置函数 1.取绝对值的内置函数: abs print(bas(-9)) #-9的绝对值会被打印出来 2. 处理可迭代对象的函数(一):all name = ("Tom","Jack","Lily") print(all(name)) #因name这个变量定义的可迭代对象是一个正确的列表 所以实print执行会返回Truse,只有可迭代对象全为真, 返回结果才为True. 3.处理可迭代对象函数(二):any name = ("Tom&

匿名函数、内置函数与模块

一.匿名函数 Python使用lambda来创建匿名函数,不再使用def语句这样标准的形式定义一个函数 lambda只是一个表达式,函数体比def简单很多 lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去 lambda函数拥有自己的名称空间,且不能访问自有参数列表之外或全局名称空间里的参数 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率 适合临时的一次性的使用场景 语法: