中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中Lambda函數如何使用

發布時間:2021-07-10 15:56:51 來源:億速云 閱讀:160 作者:Leah 欄目:編程語言

本篇文章為大家展示了Python中Lambda函數如何使用,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Python代碼

print   reduce(lambda   x,y:x*y,   range(1,   1001))

一下子被python代碼的精簡與緊湊所折服,故對代碼進行了簡單的分析。

reduce與range都是Python的內置函數。

range(1,1001)表示生成1到1000的連續整數列表(List)。

reduce(functionA,iterableB),functionA為需要兩個變量的函數,并返回一個值。iterableB為可迭代變量,如List等。reduce函數將B中的元素從左到右依次傳入函數A中,再用函數A返回的結果替代傳入的參數,反復執行,則可將B reduce成一個單值。在此,是將1到1000的連續整數列表傳入lambda函數并用兩個數的積替換列表中的數,實際的計算過程為:(...((1×2)×3)×4)×...×1000),***的結果即1000的階乘。

下面來介紹一下lambda函數。

lambda函數是一種快速定義單行的最小函數,是從 Lisp 借用來的,可以用在任何需要函數的地方。下面的例子比較了傳統的函數與lambda函數的定義方式:

>>> def f(x,y):   ...     return x*y   ...       >>> f(2,3)    >>> g = lambda x,y: x*y   >>> g(2,3)

可以看到,兩個函數得到的結果一樣,而對于實現簡單功能的函數來說,使用lambda函數來定義更加精簡靈活,還可以直接把函數賦值給一個變量,用變量名來表示函數名。

其實lambda函數在很多時候都是不需要賦值給一個變量的(如前文中求階乘的過程)。

使用lambda函數還有一些注意事項:

lambda 函數可以接收任意多個參數 (包括可選參數) 并且返回單個表達式的值。

lambda 函數不能包含命令,包含的表達式不能超過一個。

下面簡單演示一下如何使用lambda函數實現自定義排序。

class People:      age=0     gender='male'      def __init__(self, age, gender):            self.age = age            self.gender = gender      def toString(self):          return 'Age:'+str(self.age)+'\tGender:'+self.gender   List=[People(21,'male'),People(20,'famale'),People(34,'male'),People(19,'famale')]  print 'Befor sort:' for p in List:      print p.toString()   List.sort(lambda p1,p2:cmp(p1.age,p2.age))  print '\nAfter ascending sort:' for p in List:      print p.toString()   List.sort(lambda p1,p2:-cmp(p1.age,p2.age))  print '\nAfter descending sort:' for p in List:      print p.toString()

上面的代碼定義了一個People類,并通過lambda函數,實現了對包含People類對象的列表按照People的年齡,進行升序和降序排列。運行結果如下:

Befor sort:   Age:21 Gender:male   Age:20 Gender:famale   Age:34 Gender:male   Age:19 Gender:famale    After ascending sort:   Age:19 Gender:famale   Age:20 Gender:famale   Age:21 Gender:male   Age:34 Gender:male    After descending sort:   Age:34 Gender:male   Age:21 Gender:male   Age:20 Gender:famale   Age:19 Gender:famale

上述內容就是Python中Lambda函數如何使用,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长宁区| 万盛区| 册亨县| 隆尧县| 东港市| 莎车县| 云和县| 大关县| 尼勒克县| 休宁县| 通江县| 沁源县| 江都市| 翁源县| 平南县| 涟源市| 周至县| 武功县| 永胜县| 新郑市| 吉安市| 乌海市| 邯郸县| 凉山| 恩施市| 阿拉善盟| 大兴区| 洛隆县| 明光市| 道真| 岱山县| 承德市| 株洲市| 庆阳市| 丽水市| 左贡县| 温宿县| 凌海市| 定兴县| 长宁区| 建德市|