Python的一行代碼有何魅力?lambda匿名函數都自嘆不如

2020-12-15 數據分析師攻略

@數據分析師攻略 公眾號

關注、學習更多數據分析的知識與資訊

------

Python代碼具有簡潔易懂的特點,說明它有許多有趣且簡潔的代碼編寫方法,這也讓很多零基礎入門學習編程的同學偏愛從Python學起,接觸這個語言的人對Python這種簡潔的代碼編寫方法都愛不釋手。

其中,一行代碼編寫與lambda表達式是最具代表性的方法,下面分別來介紹一行代碼編寫和lambda表達式的代碼之美。

一行代碼

我們都知道,創建列表的方式有多種,比如直接定義、使用list()函數轉換、使用for循環迭代輸出等等。

不知道你們有沒有發現,當定義某種列表時,如果使用for循環迭代輸出的話,會讓代碼變得複雜,需要很多行代碼才能實現這一功能。如下面圖片,當使用for循環輸出一個列表時,使用了三行代碼才定義好一個新的列表。

但幸運的是,Python中存在一種十分高效的內置方法可以在一行代碼中實現定義列表的問題。如下面例子中,定義新列表的代碼只需要一行,這種方法不僅大大減少了代碼量,更便於閱讀和理解。

lambda表達式

在學習Python的過程中,很多人常常對lambda表達式的語法感到困惑,什麼是lambda?lambda表達式怎麼用,什麼時候該用lambda?

請看下去,下面內容將為你介紹。Python中的lambda是用來創建匿名函數,它是一個表達式,但函數體比def簡單,它的語法如下:

語法參數中,arg為入口參數,expression為函數體,用函數表達則如下圖所示:

用學習函數的方式來學習lambda表達式就非常容易理解了,在這裡lambda簡化了函數定義的書寫形式,使得代碼更簡潔。

lambda表達式有多個用處。

一是直接賦給一個變量,然後再像一般函數那樣調用。如下圖,賦一個變量AllSum,在並在調用輸出時輸入相應參數,計算他們的和。使用lambda表達式時也可以直接傳遞參數。

二是將lambda表達式作為參數傳遞給其他的函數,如結合map、filter、sorted、reduce等其他Python內置函數一起使用。

三是將lambda表達式嵌套到普通函數中,作為一個返回值。

四是在字符串聯合時,有默認值,也可以使用x=(lambda...)這種格式

五是對兩個列表元素進行求和

六是求字符串每個單詞的長度

lambda表達式的以上幾種用處,在工作時經常會遇到,適當的時候可以加以應用。但注意的是,lambda表達式並不會帶來運行效率上的提高,只是讓代碼變得簡潔,所以如果可以使用for...in等來完成的,儘量不使用lambda表達式。#python#

相關焦點

  • python入門基礎之lambda匿名函數詳解
    python入門基礎之lambda匿名函數詳解剛開始學習python的時候很多人可能對於lambda函數不了解,感覺和def很混亂,下面我來介紹一下lambda函數我從一下幾個方面來介紹lambda:1、lambda簡介2、lambda與def不同之處3、lambda的使用方法
  • Python每天一分鐘:lambda表達式 (匿名函數)及用法詳解
    lambda表達式介紹python中有一種靈活,便捷的且具有函數功能的表達式:lambda表達式!lambda表達式,又稱匿名函數,是現代各種程式語言爭相引入的一種語法,其功能堪比函數,設計卻比函數簡潔。
  • Python中的lambda函數
    Python中的lambda函數在Python中,我們使用lambda關鍵字來聲明一個匿名函數
  • python之lambda函數使用
    一,lambda函數的概念lambda函數被稱為匿名函數,實際就是說沒有名稱的函數,形式如下:
  • Python匿名函數:Lambda表達式
    【1】何為Lambda表達式?我們以一張圖形進入主題:從圖中我們可以看出lambda表達式幾點特徵:簡潔性,符合了Python的一貫宗旨;起到了函數的作用,但未顯示函數名稱,這就是匿名函數;有形參;有返回值的。
  • 詳細講解:python中的lambda與sorted函數
    本文內容主要介紹了python中的lambda與sorted函數的相關資料,幫助大家更好的理解和學習python,感興趣的朋友可以了解下!!!
  • Python中的4個Lambda函數示例
    書中代碼使用Python3,並且在本公眾號有相關的資源推薦和勘誤修訂,詳情請關注本公眾號(【老齊教室】)之後,在菜單中查看。不是所有Python開發者都喜歡Lambda函數,我也對它有著比較複雜的感覺,特別是對初學者而言,它不像我們使用的普通函數那麼直觀,然而對於一些有豐富開發經驗的程式設計師,他們喜歡在必要時使用它。
  • Python代碼結構:函數
    ,內部函數時非常有用的,從而避免了循環和代碼的堆疊重複。saying:>>>a()"We are the knights who say:'Duck' ">>>b()"We are the knights who say:'Hasenpfeffer' "11.匿名函數:lambda()函數Python中,lambda函數是用一條語句表達的匿名函數
  • 十九、深入Python匿名函數
    匿名函數的定義方式也和普通函數不一樣,代碼比較簡潔。匿名函數匿名函數不需要顯示地定義函數名,使用【lambda + 參數 +表達式】的方式lambda 函數比如,將最簡單的平方函數改造成匿名函數# lambda x : x * x 實際上就是def f(x):
  • Python中Lambda的前4個錯誤
    如此之多,以至於許多Python程式設計師都想儘可能地使用它們。當然,lambda具有使我們的代碼簡潔的優勢,但是在項目中過度使用它們會導致濫用,從而降低我們代碼的可讀性和可維護性。在開始研究這些誤用是什麼之前,讓我們先快速回顧一下lambda。如果您對它們非常了解,則可以跳到下一部分。
  • 不要在Python中編寫 lambda 表達式了
    lambda 的利弊圍繞 lambda 表達式和 def 定義的函數之間的一系列對比, 我發表一下看法. 這兩類工具都可以提供函數, 但它們都有各自的限制, 使用了不同的語法.同時給函數一個合適的名稱也是很有好處的, 可以讓調試簡單一些. 而與 def 定義的函數不同, lambda 函數從來都沒有一個名稱(名稱都是<lambda>):
  • Python中lambda的使用,與它的三個好基友介紹!
    很多朋友說,python入門有推薦的書嗎?其實遇到這種問題,會比較難回答,因為如果一心想學python,現在網絡那麼發達,怎麼都能找到資料學。當然你要真讓我推薦一本書,我還是想說《python學習手冊第四版》,這本書乍一看突出一個厚字,但內容講的是真的很細緻!如果你不知道python學哪本書,還是推薦你看看它。大家可以從我公眾號底部的領取福利中,找到這本書。
  • 通過「四不要」,掌握 Python 的 Lambda 函數
    假設您知道什麼是 lambda 函數,本文旨在提供有關如何正確使用 lambda 函數的一些常規準則。1. 不要返回任何值看看語法,您可能會注意到我們在 lambda 函數中並沒有返回任何內容。這都是因為 lambda 函數只能包含一個表達式。
  • Python函數概述
    # 調用printinfo 函數printinfo( 10 )printinfo( 70, 60, 50 )以上實例輸出結果:匿名函數用lambda關鍵詞能創建小型匿名函數。這種函數得名於省略了用def聲明函數的標準步驟。Lambda函數能接收任何數量的參數但只能返回一個表達式的值,同時只能不能包含命令或多個表達式。匿名函數不能直接調用print,因為lambda需要一個表達式。lambda函數擁有自己的名字空間,且不能訪問自有參數列表之外或全局名字空間裡的參數。
  • Python中的Lambda表達式
    Lambda表達式當我們需要做一些簡單的事情並且更希望快速完成工作而不是正式命名函數時,Lambda表達式是理想的選擇。Lambda表達式也稱為匿名函數。Python中的Lambda表達式是聲明小型匿名函數的一種簡短方式(沒有必要為Lambda函數提供名稱)。
  • 雲計算開發學習筆記:Python3匿名函數
    來源:TechWeb.com.cnpython 使用 lambda 來創建匿名函數。所謂匿名,意即不再使用 def 語句這樣標準的形式定義一個函數。lambda 只是一個表達式,函數體比 def 簡單很多。lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。lambda 函數擁有自己的命名空間,且不能訪問自己參數列表之外或全局命名空間裡的參數。
  • 白話 Python 的函數式編程
    所謂函數式編程,就是指代碼中每一塊都是不可變的(immutable),都是由 pure function 的形式組成。這裡的 pure function 是指函數本身相互獨立,互不影響,對於相同的輸入,總會有相同的輸出。也就是我們常說的沒有副作用。
  • Python入門基礎中怎麼定義函數,函數調用,函數傳遞參數
    函數沒有調用的時候,它不會自己執行的。比如你去購物網站買東西,網站沒有用函數。你打開他們的首頁,然後後臺的代碼從上往下執行。一個項目中有多少功能,多少代碼量。當打開首頁需要話費5分鐘,搜索商品又要花費 5分鐘,你以後肯定不去這個網站購物了。本來網站首頁只需要調用一個函數就可以了,搜索商品頁面也是一個函數。這樣兩個頁面前後打開加起來也就幾秒的事。
  • Python中函數的定義、傳參和lambda函數是什麼?他們有什麼用?
    今天我們來學習函數的定義、傳參和lambda函數。開發工具:IDLE (Python 3.7 64-bit或者32-bit) (註:不需要3.7版本的也行,只需要Python3的版本都可以,在語法方面沒有什麼不同。)
  • 5個助你效率提升的python小技巧
    使用交互模式使用python -i xxxx.py可以直接進入python的交互模式,可以很方便的調用xxxx.py中定義的方法和函數,特別適合調試沒有main()方法的文件,強力推薦。使用pdb進行調試很多從c++/java轉到python的同學可能對python沒有斷點功能相當失望。