Python 匿名函數(shù) lambda - Python零基礎(chǔ)入門教程

目錄

零基礎(chǔ) Python 學(xué)習(xí)路線推薦 : Python 學(xué)習(xí)目錄 >> Python 基礎(chǔ)入門

Python 開發(fā)中常規(guī)的函數(shù)在調(diào)用之前都需要先聲明,而 Python 匿名函數(shù)担锤,有速寫函數(shù)的功能并且匿名函數(shù)不需要聲明也沒有函數(shù)名字挤庇,完全不需要擔(dān)心函數(shù)名沖突智听,具體的妙用還需要從實(shí)戰(zhàn)練習(xí)中多多積累經(jīng)驗(yàn)奄喂。

一.Python 匿名函數(shù) lambda 語法

lambda a,b,c:expression

1.匿名函數(shù)有關(guān)鍵字 lambda 修飾;
2.匿名函數(shù)冒號(hào) : 之前的是函數(shù)的參數(shù)我磁,匿名函數(shù)可以是無參匿名函數(shù)谍夭,也可以是帶參匿名函數(shù);
3.匿名函數(shù)冒號(hào) : 之后是表達(dá)式氓润,匿名函數(shù)不需要寫 return,表達(dá)式的結(jié)果就是返回值;

# !usr/bin/env python

  # -_- coding:utf-8 \__-

  """
  @Author:猿說編程
  @Blog(個(gè)人博客地址): www.codersrc.com
  @File:Python 匿名函數(shù) lambda.py
  @Time:2021/04/11 09:00
  @Motto:不積跬步無以至千里屋厘,不積小流無以成江海涕烧,程序人生的精彩需要堅(jiān)持不懈地積累!

  """

  #不帶參數(shù)的普通函數(shù)
  def sing_dog():
      return True #不帶參數(shù)的匿名函數(shù)
  f0 = lambda :True #  無參的匿名函數(shù)汗洒,在匿名函數(shù)的冒號(hào)前面無需寫參數(shù)
  print(sing_dog())
  print(f0())

  print("*\*\*"*20)

  #帶參數(shù)的普通函數(shù)
  def sub(a,b):
      return a - b
  def add(a,b):
      return a + b

  #帶參數(shù)的匿名函數(shù)
  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))

  '''
  輸出結(jié)果:

  True
  True


  2
  6
  2
  6
'''

首先澈魄,匿名函數(shù)普通函數(shù)對(duì)比之下,明顯能感覺到匿名函數(shù)的使用能讓代碼更加簡潔仲翎,當(dāng)然匿名函數(shù)使用場景適用于比較簡單的需求痹扇,對(duì)于復(fù)雜的計(jì)算,匿名函數(shù)是無法完成的溯香;

其次鲫构,無參的匿名函數(shù),在匿名函數(shù)的冒號(hào)前面無需寫參數(shù)玫坛;

二.Python 匿名函數(shù) lambda 調(diào)用

1.lambda 匿名函數(shù)常規(guī)使用

假如有這樣一個(gè)需求:傳入一個(gè)字符串结笨,對(duì)字符串根據(jù)空格拆分,并以字符串的形式返回拆分后的結(jié)果,示例代碼如下:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿說編程
@Blog(個(gè)人博客地址): www.codersrc.com
@File:Python 匿名函數(shù) lambda.py
@Time:2021/04/11 09:00
@Motto:不積跬步無以至千里炕吸,不積小流無以成江海伐憾,程序人生的精彩需要堅(jiān)持不懈地積累!

"""

str1 = "laowang is sing_dog "

#普通函數(shù)
def get_str(str1):
    # 1.將字符串拆分為列表
    list1 = str1.split(" ")
    # 2.將列表轉(zhuǎn)為字符串并返回字符串
    return "".join(list1)

    # 將1/2兩步合并為一步完成
    # return "".join(str1.split(" "))

print("打印原始字符串:",str1)
print("調(diào)用普通函數(shù)獲取字符串拆分結(jié)果:",get_str(str1))

#匿名函數(shù)
f0 = lambda a:"".join(a.split(" "))
print("調(diào)用匿名函數(shù)獲取字符串拆分結(jié)果:",f0(str1))

'''
輸出結(jié)果:

打印原始字符串: laowang is sing_dog
調(diào)用普通函數(shù)獲取字符串拆分結(jié)果: laowangissing_dog
調(diào)用匿名函數(shù)獲取字符串拆分結(jié)果: laowangissing_dog
'''

如果對(duì)字符串轉(zhuǎn)換不太熟悉的童鞋請(qǐng)參考:字符串/列表/元組/字典之間的相互轉(zhuǎn)換

2. lambda 匿名函數(shù)使用不定長參數(shù)

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿說編程
@Blog(個(gè)人博客地址): www.codersrc.com
@File:Python 匿名函數(shù) lambda.py
@Time:2021/04/11 09:00
@Motto:不積跬步無以至千里赫模,不積小流無以成江海树肃,程序人生的精彩需要堅(jiān)持不懈地積累!

"""

# 匿名函數(shù):通過條件表達(dá)式瀑罗,返回最大值
f0 = lambda x,y: x if x> y else y
print(f0(5,10))

# 匿名函數(shù):求三個(gè)參數(shù)的乘積
f1 = lambda x,y,z: x*y*z
print(f1(1,2,3))

# 缺省的匿名函數(shù)
f2 = lambda x,y=2: x+y #使用了默認(rèn)值
print(f2(10)) #第二個(gè)參數(shù)為缺省參數(shù)胸嘴,使用默認(rèn)值2

# 不定長參數(shù)的匿名函數(shù)
f3 = lambda *z:z #*z返回的是一個(gè)元祖
print(f3('hello',False))

# 不定長參數(shù)的匿名函數(shù)
f4 = lambda **Arg: Arg #arg返回的是一個(gè)字典
print(f4(a=1,b=2,k="hello"))


'''
輸出結(jié)果:

10
6
12
('hello', False)
{'a': 1, 'b': 2, 'k': 'hello'}
'''

如果對(duì) Python 不定長參數(shù)*argc,**kargcs 不太熟悉的話,可以在看一遍這篇文章:Python 函數(shù)不定長參數(shù) *argc,**kargcs

3. lambda 匿名函數(shù)作為參數(shù)使用

其實(shí)匿名函數(shù)作為函數(shù)參數(shù)傳參和普通函數(shù)傳參沒什么區(qū)別斩祭,示例代碼如下:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿說編程
@Blog(個(gè)人博客地址): www.codersrc.com
@File:Python 匿名函數(shù) lambda.py
@Time:2021/04/11 09:00
@Motto:不積跬步無以至千里劣像,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累摧玫!

"""

def function1(a,b,):
    return a if a>b else b #返回最大值

# 1.定義匿名函數(shù)
f0 = lambda b:b*10
# 2.匿名函數(shù)作為參數(shù)耳奕,調(diào)用普通函數(shù)
function1(100,f0(5))

# 上面兩行代碼合并為一行
function1(100 , (lambda b:b*10)(5))

]

三.Python 匿名函數(shù) lambda 重點(diǎn)總結(jié):

  • 1.匿名函數(shù)可以是無參匿名函數(shù)也可以是有參匿名函數(shù);
  • 2.匿名函數(shù)不僅可以直接當(dāng)作函數(shù)調(diào)用,還能直接作為函數(shù)中的參數(shù)直接使用;

四.猜你喜歡

  1. Python 字符串/列表/元組/字典之間的相互轉(zhuǎn)換
  2. Python 局部變量和全局變量
  3. Python type 函數(shù)和 isinstance 函數(shù)區(qū)別
  4. Python is 和 == 區(qū)別
  5. Python 可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型
  6. Python 淺拷貝和深拷貝
  7. Python 遞歸函數(shù)
  8. Python sys 模塊
  9. Python 列表 list
  10. Python 元組 tuple
  11. Python 字典 dict
  12. Python 條件推導(dǎo)式
  13. Python 列表推導(dǎo)式
  14. Python 字典推導(dǎo)式
  15. Python 函數(shù)聲明和調(diào)用
  16. Python 不定長參數(shù) *argc/**kargcs

未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? Python 匿名函數(shù) lambda

本文由博客 - 猿說編程 猿說編程 發(fā)布诬像!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末屋群,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子颅停,更是在濱河造成了極大的恐慌谓晌,老刑警劉巖掠拳,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癞揉,死亡現(xiàn)場離奇詭異,居然都是意外死亡溺欧,警方通過查閱死者的電腦和手機(jī)喊熟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姐刁,“玉大人芥牌,你說我怎么就攤上這事∧羰梗” “怎么了壁拉?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長柏靶。 經(jīng)常有香客問我弃理,道長蹋盆,這世上最難降的妖魔是什么擎勘? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮餐茵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辆苔。我一直安慰自己算灸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布驻啤。 她就那樣靜靜地躺著菲驴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪街佑。 梳的紋絲不亂的頭發(fā)上谢翎,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音沐旨,去河邊找鬼森逮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛磁携,可吹牛的內(nèi)容都是我干的褒侧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼谊迄,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼闷供!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起统诺,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤歪脏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后粮呢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體婿失,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年啄寡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了豪硅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挺物,死狀恐怖懒浮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情识藤,我是刑警寧澤砚著,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站痴昧,受9級(jí)特大地震影響稽穆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜剪个,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一秧骑、第九天 我趴在偏房一處隱蔽的房頂上張望版确。 院中可真熱鬧,春花似錦乎折、人聲如沸绒疗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吓蘑。三九已至,卻和暖如春坟冲,著一層夾襖步出監(jiān)牢的瞬間磨镶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來泰國打工健提, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留琳猫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓私痹,卻偏偏與公主長得像脐嫂,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子紊遵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容