@數據分析師攻略 公眾號
關注、學習更多數據分析的知識與資訊
------
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#