您好,登錄后才能下訂單哦!
小編給大家分享一下python如何使用Lambda和Map函數,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Lambda 和 Map
Lambda 是一種匿名函數,它看起來可能有一點奇怪,但是一旦你理解了它,那么他就會變得非常直觀與強大。
一般而言,Lambda 函數都比較小,它也不需要定義函數名。那么為什么需要匿名函數?簡單而言,Lambda 最常執行一些直觀的運算,它并不需要標準的函數定義,而且也不需要新的函數名再次調用。
還是拿上面的先平方再加 5 為例,前面我們是定義了一個標準的函數,def stupid_func(x),現在我們可以試試 Lambda 匿名函數:
>>> stupid_func = (lambda x : x ** 2 + 5) >>> print([stupid_func(1), stupid_func(3), stupid_func(5)]) [6, 14, 30]
那么我們為什么要用上面的表達式?很大一部分原因在于,當我們想執行一些簡單運算時,可以不需要定義真實函數就能完成。例如排序列表元素,一種直觀的方法可以使用 sorted() 方法:
>>> my_list = [2, 1, 0, -1, -2] >>> print(sorted(my_list)) [-2, -1, 0, 1, 2]
這只能默認從大到小或從小到大排序,但是借助 Lambda 表達式,我們可以實現更自由的排序標準。如下所示我們希望根據最小的平方數對列表進行排序,其可以使用 Lambda 函數定義鍵,從而告訴 sorted() 方法該怎樣排序。
>>> print(sorted(my_list, key = lambda x : x ** 2)) [0, -1, 1, -2, 2]
Map 是一個簡單的函數,它可以將某個函數應用到其它一些序列元素,例如列表。如果我們有兩個列表,我們希望將這兩個列表對應的元素相乘,那么使用 lambda 函數和 map 可以快速實現這一功能:
>>> print(list(map(lambda x, y : x * y, [1, 2, 3], [4, 5, 6]))) [4, 10, 18]
上面的代碼非常優雅,如果不用它們兩者,那么一般的表達需要寫成這樣:
>>> x, y = [1, 2, 3], [4, 5, 6] >>> z = [] >>> for i in range(len(x)): >>> z.append(x[i] * y[i]) >>> print(z) [4, 10, 18]
以上是“python如何使用Lambda和Map函數”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。