Python匿名函數:Lambda表達式

2020-12-03 老羅觀社會萬象

【1】何為Lambda表達式?

我們以一張圖形進入主題:

從圖中我們可以看出lambda表達式幾點特徵:

簡潔性,符合了Python的一貫宗旨;起到了函數的作用,但未顯示函數名稱,這就是匿名函數;有形參;有返回值的。【2】Lambda表達式如何實現函數功能?

首先,看一個返回所有參數和的函數:

# 返回所有參數和def pSum(a,b,c):return a + b + cpSum(10,40,50)

函數中必須要用return才能實現「和」的返回。

接著我們嘗試用lambda表達式來實現上述函數功能:

# labmda表達式psum = lambda a,b,c:a + b + cprint(psum) # 驗證是否生成一個新對象print(psum(10,40,50)) # 驗證執行效果

【結論】lambda實現了函數的效果。

【3】Lambda表達式有何應用場景?

學到這裡,我們可以立馬想到一個問題:lambda表達式有什麼應用呢?是否可以用來創建列表、元組、字典或其他自定義的類型呢?

我們可以嘗試創建列表:

# lambda表達式創建列表plist = [lambda a:a*2,lambda b:b*3,lambda c:c*4]# 列印列表元素print(plist[0](10),plist[1](40),plist[2](50)) # 生成元組l = plist[0](10),plist[1](40),plist[2](50)print(l)# 生成列表list(l)

看看執行效果是否符合預期:

【結論】lambda表達式是可以用來創建列表和元組的。

其他的功能探索可以在深度學習時進一步探索、總結。

相關焦點

  • Python每天一分鐘:lambda表達式 (匿名函數)及用法詳解
    lambda表達式介紹python中有一種靈活,便捷的且具有函數功能的表達式:lambda表達式!lambda表達式,又稱匿名函數,是現代各種程式語言爭相引入的一種語法,其功能堪比函數,設計卻比函數簡潔。
  • Python學習第40課-Lambda表達式創建匿名函數
    【每天幾分鐘,從零入門python編程的世界!】之前我們學習了使用def關鍵字來創建自定義函數,這種方式創建的函數都是有函數名的,我們也可以創建沒有函數名的函數,這種函數叫做匿名函數。Python中可以使用Lambda表達式來創建匿名函數。
  • python入門基礎之lambda匿名函數詳解
    python入門基礎之lambda匿名函數詳解剛開始學習python的時候很多人可能對於lambda函數不了解,感覺和def很混亂,下面我來介紹一下lambda函數我從一下幾個方面來介紹lambda:lambda作為一個表達式,定義了一個匿名函數,上例的代碼x,y為入口參數,x+y為函數體。在這裡lambda簡化了函數定義的書寫形式。python允許用lambda關鍵字創造匿名函數。匿名是不需要以標準的方式來聲明,比如說使用 def 語句。(除非賦值給一個局部變量,這樣的對象也不會在任何的名字空間內創建名字,上面的例子中會創建名字。)
  • Python的一行代碼有何魅力?lambda匿名函數都自嘆不如
    其中,一行代碼編寫與lambda表達式是最具代表性的方法,下面分別來介紹一行代碼編寫和lambda表達式的代碼之美。一行代碼我們都知道,創建列表的方式有多種,比如直接定義、使用list()函數轉換、使用for循環迭代輸出等等。
  • 「數據清洗」lambda表達式配合使用的四種函數
    標籤:數據清洗、pythonlambda表達式配合使用的四種函數一、什麼是lambda表達式基本特性使用方法filter函數map函數sorted函數reduce函數總結什麼是lambda表達式>lambda 表達式是一個匿名函數,lambda表達式基於數學中的λ演算得名,直接對應於其中的lambda抽象,是一個匿名函數,即沒有函數名的函數。
  • Python中的Lambda表達式
    Lambda表達式當我們需要做一些簡單的事情並且更希望快速完成工作而不是正式命名函數時,Lambda表達式是理想的選擇。Lambda表達式也稱為匿名函數。Python中的Lambda表達式是聲明小型匿名函數的一種簡短方式(沒有必要為Lambda函數提供名稱)。
  • Lambda表達式在Python事件中的運用
    本篇筆記內容:Lambda表達式詳解Lambda表達式在事件中的應用【1】Lambda表達式詳解lambda 表達式定義的是一個匿名函數,只適合簡單輸入參數,簡單計算返回結果,不適合功能複雜情況。lambda 定義的匿名函數也有輸入、也有輸出,只是沒有名字。語法格式如下:lambda 參數值列表:表達式其中,參數值列表即為輸入,表達式計算的結構即為輸出。看一個案例:求三個數的和。
  • Java8 lambda表達式
    ,event是參數,同匿名內部類的參數一樣,->將參數和lambda表達式的內容體分開。但是無論我如何稱呼他們,我已經提到過lambda表達式是靜態類型的,因此讓我們研究表達式本身:他們稱之為函數式接口。函數式接口函數式接口是指的只有一個抽象方法的接口,被當做是lambda表達式的一種類型使用。
  • 雲計算開發學習筆記:Python3匿名函數
    來源:TechWeb.com.cnpython 使用 lambda 來創建匿名函數。所謂匿名,意即不再使用 def 語句這樣標準的形式定義一個函數。lambda 只是一個表達式,函數體比 def 簡單很多。lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。lambda 函數擁有自己的命名空間,且不能訪問自己參數列表之外或全局命名空間裡的參數。
  • Python3中的匿名函數
    匿名函數即無名函數,其形式為:lambda 參數1,參數2:表達式,其中參數1,參數2為傳遞的參數,表達式計算出的結果為返回的值。# 普通函數def add1(x,y): return x+y print(add1(10,20)) # 匿名函數(lambda)add2 = lambda x,y:x+y # x,y 是參數,x+y的結果是函數的返回值print(add2(10,20))lambda是一個表達式,而不是語句,不是一個代碼塊。
  • Python小白學習記錄-匿名函數lambda
    匿名函數就是不需要通過def定義及顯示地指定函數名的函數匿名函數的特性(1)匿名函數只能有一個表達式,不用寫return,返回值就是該表達式的結果。(2)匿名函數沒有名字,不必擔心函數名衝突。(3)匿名函數也是一個函數對象,可以把匿名函數賦值給一個變量,再利用變量來調用該函數。(4)有些函數在代碼中只用一次,而且函數體比較簡單,不需要賦值給變量,直接調用可以減少代碼量,看起來比較」優雅「。
  • Python零基礎入門教程,如何使用lambda、filter和map函數?
    大綱函數類型定義及特性lambda函數定義及使用filter函數定義及使用map函數定義及使用引入函數類型概念函數類型定義:python中任意一個函數都有數據類型,這種數據類型是function(函數類型)
  • 大家都在說的「Lambda 表達式」到底是什麼?
    01定義Lambda表達式也被稱為箭頭函數,匿名函數,閉包Lambda表達式體現的是輕量級函數式編程思想『->』符號式Lambda表達式核心操作符號,符號左側是操作參數,符號右側是操作表達式1、在定義中有一個比較重要的詞就是「函數式編程」現在「
  • Java8 lambda表達式語法
    簡單點說就是:一個不用被綁定到一個標識符上,並且可能被調用的函數。這個解釋還不夠通俗,lambda表達式可以這樣定義(不精確,自己的理解):一段帶有輸入參數的可執行語句塊。這樣就比較好理解了吧?一例勝千言。有讀者反饋:不理解Stream的含義,所以這裡先提供一個沒用stream的lambda表達式的例子。
  • python入門教程NO.8 用python寫個存款利息計算器
    本文涉及的python基礎語法為def函數,return,函數的各參數示例,匿名函數等函數初識函數是一段組織好的\ 可重複使用的\ 用來實現特定功能的代碼塊。Python 中的函數以英文冒號開始,並且需要縮進,以表示接下來是函數內部的代碼了a = a + x和return a為函數的函數體,這部分就是函數的功能實現和輸出返回值的地方return [表達式]結束函數,並將a的值返回給調用方。不帶表達式的return相當於返回 None我們通過一個案例來理解一下在上面的例子中,我們講到了形參和實參,那麼具體該如何區分它們呢?
  • Python面試題推薦:什麼是lambda函數?
    Python允許你定義一種單行的小函數。定義lambda函數的形式如下:labmda 參數:表達式lambda函數默認返回表達式的值。你也可以將其賦值給一個變量。lambda函數可以接受任意個參數,包括可選參數,但是表達式只有一個:>>> g = lambda x, y: x*y>>> g(3,4)12>>> g = lambda x, y=0,
  • 三種基本用法、五種應用場景,理清C++11新特性:Lambda表達式
    lambda表達式是指能夠捕獲作用域中的變量的無名函數對象,狹義的理解,就是匿名函數。無論是在項目中,還是在開源網站,總是能夠看到lambda的身影。為了能夠輕鬆閱讀代碼,進而熟練地使用,本文首先將講解lambda表達式的基本語法、三種基本用法,然後介紹五種實際的應用場景,最有總結說明lambda表達式的作用。
  • Python基礎教程(一) - 函數和函數式編程
    前面使用過很多print()來進行列印,這是python提供的內建函數,你也可以自己創建函數,這叫做用戶自定義函數。創建函數你可以定義一個由自己想要功能的函數,用def語句來創建,標題行由def關鍵字,函數的名字,以及參數的集合(如果有的話)組成。
  • 寫Python 代碼不可不知的函數式編程技術
    單表達式函數(Lambda 表達式)如果我們想在未給函數命名之前寫一個函數要怎麼做?如果我們想寫一個簡短的單行函數(如上述示例中的函數 foo 或 mult)要怎麼做?我們可以在 Python 中使用 lambda 關鍵字來定義此類函數。
  • python高階函數:map、filter、reduce的替代品
    什麼是高階函數?高階函數是一種將函數作為參數,或者把函數作為結果返回的函數,map函數、sorted函數就是高階函數的典型例子。map函數在小編以前的文章中做過相應的知識分享。sorted函數是python的內置函數,它的可選參數key用於提供一個函數,它可以將函數應用到各個元素上進行排序。