python lanbda匿名函数(20)

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

写代码

一.匿名函数语法:

lambda a,b,c:expression

 

    匿名函数有如下几个特色:git

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

    2.匿名函数冒号 : 以前的是函数的参数,匿名函数能够是无参匿名函数,也能够是带参匿名函数;express

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

# !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))

 

     输出结果:函数

True True ************************************************************
2
6
2
6

 

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

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

复制粘贴

二.匿名函数调用:

    1.匿名函数常规使用

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

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))

 

    输出结果:教程

打印原始字符串: laowang is sing_dog 调用普通函数获取字符串拆分结果: laowangissing_dog 调用匿名函数获取字符串拆分结果: laowangissing_dog

 

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

 

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

# 匿名函数:经过条件表达式,返回最大值
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"))

 

    输出结果:

    若是对python不定长参数*argc,**kargcs 不太熟悉的话,能够在看一遍这篇文章:python函数不定长参数 *argc,**kargcs

 

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

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

 

能用就行

三.重点总结:

     1.匿名函数能够是无参匿名函数也能够是有参匿名函数;

     2.匿名函数不只能够直接看成函数调用,还能直接做为函数中的参数直接使用;

 

 

猜你喜欢:

    1.python函数声明和调用

    2.python字典推导式

    3.python列表推导式

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

 

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

 

技术交流、商务合做请直接联系博主
扫码或搜索:猿说python
python教程公众号
猿说python
微信公众号 扫一扫关注
相关文章
相关标签/搜索