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

首頁 > 編程 > Python > 正文

Python lambda和Python def區別分析

2020-02-23 06:17:39
字體:
來源:轉載
供稿:網友

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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高台县| 宁夏| 垣曲县| 阜城县| 永和县| 辽宁省| 前郭尔| 鹤庆县| 邓州市| 垫江县| 邳州市| 宜城市| 恭城| 垣曲县| 文水县| 晋江市| 榆社县| 桃园市| 临颍县| 杂多县| 永登县| 柯坪县| 罗定市| 龙海市| 景宁| 新泰市| 景谷| 平邑县| 合川市| 锦屏县| 新平| 达孜县| 西和县| 页游| 永德县| 彰武县| 肇东市| 石景山区| 进贤县| 丹江口市| 平昌县|