python 匿名函数lambda(20)
admin
2023-06-26 15:02:17
0

在python开发中常规的函数在调用之前都需要先声明,而python还有一种匿名函数,有速写函数的功能并且匿名函数不需要声明也没有函数名字,完全不需要担心函数名冲突,具体的妙用还需要从实战练习中多多积累经验。

python 匿名函数lambda(20)

一.匿名函数语法:


1

lambda a,b,c:expression

匿名函数有以下几个特点:

1.匿名函数有关键字 lambda 修饰;

2.匿名函数冒号 : 之前的是函数的参数,匿名函数可以是无参匿名函数,也可以是带参匿名函数;

3.匿名函数冒号 : 之后是表达式,匿名函数不需要写 return,表达式的结果就是返回值;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解忧

@Blog(个人博客地址): shuopython.com

@WeChat Official Account(微信公众号):猿说python

@Github:www.github.com

@File:python_lambda.py

@Time:2019/10/5 17:48

 

@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

 

#不带参数的普通函数

def sing_dog():

    return True

#不带参数的匿名函数

f0 = lambda :True # 无参的匿名函数,在匿名函数的冒号前面无需写参数

print(sing_dog())

print(f0())

 

print("***"*20)

 

#带参数的普通函数

def sub(a,b):

    return a - b

def add(a,b):

    return a + b

 

#带参数的匿名函数

f1 = lambda a,b:a-b

f2 = lambda a,b:a+b

 

print(sub(4,2))

print(add(4,2))

print(f1(4,2))

print(f2(4,2))

输出结果:

1

2

3

4

5

6

7

True

True

************************************************************

2

6

2

6

首先,匿名函数和普通函数对比之下,明显能感觉到匿名函数的使用能让代码更加简洁,当然匿名函数使用场景适用于比较简单的需求,对于复杂的计算,匿名函数是无法完成的;

其次,无参的匿名函数,在匿名函数的冒号前面无需写参数;

python 匿名函数lambda(20)

二.匿名函数调用:

1.匿名函数常规使用

假如有这样一个需求:传入一个字符串,对字符串根据空格拆分,并以字符串的形式返回拆分后的结果,示例代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

str1 = "laowang is sing_dog "

 

#普通函数

def get_str(str1):

    # 1.将字符串拆分为列表

    list1 = str1.split(" ")

    # 2.将列表转为字符串并返回字符串

    return "".join(list1)

 

    # 将1/2两步合并为一步完成

    # return "".join(str1.split(" "))

 

print("打印原始字符串:",str1)

print("调用普通函数获取字符串拆分结果:",get_str(str1))

 

#匿名函数

f0 = lambda a:"".join(a.split(" "))

print("调用匿名函数获取字符串拆分结果:",f0(str1))

输出结果:

1

2

3

打印原始字符串: laowang is sing_dog

调用普通函数获取字符串拆分结果: laowangissing_dog

调用匿名函数获取字符串拆分结果: laowangissing_dog

如果对字符串转换不太熟悉的童鞋请参考:字符串/列表/元组/字典之间的相互转换

 

2.匿名函数使用不定长参数


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

# 匿名函数:通过条件表达式,返回最大值

f0 = lambda x,y: x if x> y else y

print(f0(5,10))

 

# 匿名函数:求三个参数的乘积

f1 = lambda x,y,z: x*y*z

print(f1(1,2,3))

 

# 缺省的匿名函数

f2 = lambda x,y=2: x+y #使用了默认值

print(f2(10)) #第二个参数为缺省参数,使用默认值2

 

# 不定长参数的匿名函数

f3 = lambda *z:z #*z返回的是一个元祖

print(f3('hello',False))

 

# 不定长参数的匿名函数

f4 = lambda **Arg: Arg #arg返回的是一个字典

print(f4(a=1,b=2,k="hello"))

输出结果:

1

2

3

4

5

10

6

12

('hello', False)

{'a': 1, 'b': 2, 'k': 'hello'}

如果对python不定长参数*argc,**kargcs 不太熟悉的话,可以在看一遍这篇文章:python函数不定长参数 *argc,**kargcs

 

3.匿名函数作为参数使用

其实匿名函数作为函数参数传参和普通函数传参没什么区别,示例代码如下:

1

2

3

4

5

6

7

8

9

10

def function1(a,b,):

    return a if a>b else b #返回最大值

 

# 1.定义匿名函数

f0 = lambda b:b*10

# 2.匿名函数作为参数,调用普通函数

function1(100,f0(5))

 

# 上面两行代码合并为一行

function1(100 , (lambda b:b*10)(5))

 

python 匿名函数lambda(20)

三.重点总结:

1.匿名函数可以是无参匿名函数也可以是有参匿名函数;

2.匿名函数不仅可以直接当作函数调用,还能直接作为函数中的参数直接使用;

 

 

猜你喜欢:

1.python函数声明和调用

2.python字典推导式

3.python列表推导式

4.python函数不定长参数 *argc,**kargcs

 

转载请注明:猿说Python » python匿名函数

 



相关内容

热门资讯

美民调:超半数美国人称生活成本... 据凤凰卫视报道,美国政治新闻网5月29日公布的最新民调显示,美国选民仍然不满意总统特朗普的经济政策,...
燃气灶开关无法控制怎么办 燃气灶开关无法控制,这是一种非常危险的情况。这种情况可能会导致燃气泄漏和火灾等严重后果。如果您遇到这...
为什么海尔冰箱冷冻室温度显示一... 这种情况表示的是超温报警灯亮了。也就是说冰箱的冷冻室温度没有降下去,冷冻室温度降到零下8度左右就自动...
西门子冰箱冷冻室温度一直闪烁是... 1、有可能是因为操作不当导致的情况;2、有可能是西门子冰箱显示屏的供电电源或显示屏本身的故障。 ...
冰雪儿点菜柜冷冻室温度灯一直闪 1、可能是因为冰雪儿点菜柜的压缩机遭到了损坏。 2、可能是因为点菜柜的内部电路发生了断路。3、可能是...
海尔冰箱冷冻温度一直闪怎么解决 一直闪可能是超温报警灯亮了,这说明冷冻室的温度出现了异常,一般是温度过高造成的报警,看看冷冻室是否关...
健康证上标注“女性私密”?越界... 南方都市报29日报道,深圳一市民陈某(化名)在深圳市南山区妇幼保健院办理托幼岗位健康证时遭遇乱象。据...
2026香格里拉对话会开幕,中... 第23届香格里拉对话会5月29日晚在新加坡开幕,来自40多个国家和地区的政要、防务官员和专家学者等共...
美国中期选举:谁是骄兵必败,谁... 【文/观察者网专栏作者 周德宇】从特朗普二次执政以来,其民调可以说是一路雪崩,连累着共和党也一起遭殃...
芗城区科协开展全国科技工作者日... 5月27日,芗城区科协联合东铺头街道、瑞京社区等单位,走进芗城实幼东铺头园区,开展芗城区全国科技工作...