国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python lambda和Python def區別分析

2019-11-25 18:03:32
字體:
來源:轉載
供稿:網友

Python支持一種有趣的語法,它允許你快速定義單行的最小函數。這些叫做lambda的函數,是從Lisp借用來的,可以用在任何需要函數的地方。

lambda的語法時常會使人感到困惑,lambda是什么,為什么要使用lambda,是不是必須使用lambda?

>>> def f(x):...   return x+2...>>> f(1)3>>> f = lambda x:x+2>>> f(1)3>>> (lambda x:x+2)(1)3

Python def和Python lambda它們有相似點也有不同點。
相似點: 這兩個很重要的相似點就是都可以定義一些固定的方法或者是流程,供給程序來調用,比如上面例子中定義一個變量加2的方法。 輸出的結果都是3,如果你要完成一些固定的流程的話,上面幾種你都可以任意選擇。

上面是相同點,那么有那些不同點?
它們的主要不同點是Python def是語句而Python lambda是表達式。lambda簡化了函數定義的書寫形式,使代碼更為簡潔。但是使用函數的定義方式更為直觀,易理解。

Python里面語句是可以嵌套的,比如你需要根據某個條件來定義方法,那只能用def。用lambda就會報錯。

>>> if a==1:...   def info():...     print '1'*5... else:...   def info2():...     print 'info2'

而有的時候你需要在python表達式里操作的時候,那需要用到表達式嵌套,這個時候Python def就不能得到你想要的結果,那只能用Python lambda,如下例子:
輸出e字符串出現頻率最高的字母:

>>> str='www.linuxeye.com linuxeye.com'>>> L = ([(i,str.count(i)) for i in set(str)])[(' ', 1), ('c', 2), ('e', 4), ('i', 2), ('m', 2), ('l', 2), ('o', 2), ('n', 2), ('u', 2), ('w', 3), ('y', 2), ('x', 2), ('.', 3)]>>> L.sort(key = lambda k:k[1],reverse = True)>>> print L[0][0]e
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邵东县| 灵寿县| 北碚区| 昆明市| 三原县| 乌苏市| 鲁山县| 灌阳县| 海城市| 广安市| 静乐县| 金湖县| 吉安县| 平原县| 东乡县| 德钦县| 个旧市| 宜州市| 迁安市| 宜丰县| 安塞县| 耒阳市| 开鲁县| 东源县| 滁州市| 桃园县| 枣强县| 丰城市| 建湖县| 辽阳市| 石嘴山市| 即墨市| 增城市| 个旧市| 邵武市| 阳城县| 原阳县| 江永县| 景宁| 饶阳县| 三原县|