欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python lambda和Python def區(qū)別分析

 更新時間:2014年11月30日 21:58:18   投稿:mdxy-dxy  
Python支持一種有趣的語法,它允許你快速定義單行的最小函數(shù)。這些叫做lambda的函數(shù),是從Lisp借用來的,可以用在任何需要函數(shù)的地方

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

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它們有相似點也有不同點。
相似點: 這兩個很重要的相似點就是都可以定義一些固定的方法或者是流程,供給程序來調(diào)用,比如上面例子中定義一個變量加2的方法。 輸出的結(jié)果都是3,如果你要完成一些固定的流程的話,上面幾種你都可以任意選擇。

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

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

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

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

>>> 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

相關(guān)文章

  • 超實用的 30 段 Python 案例

    超實用的 30 段 Python 案例

    Python是目前最流行的語言之一,它在數(shù)據(jù)科學(xué)、機器學(xué)習(xí)、web開發(fā)、腳本編寫、自動化方面被許多人廣泛使用。這篇文章主要介紹了超實用的 30 段 Python 案例,需要的朋友可以參考下
    2019-10-10
  • 《Python之禪》中對于Python編程過程中的一些建議

    《Python之禪》中對于Python編程過程中的一些建議

    這篇文章主要介紹了《Python之禪》中對于Python編程過程中的一些建議,需要的朋友可以參考下
    2015-04-04
  • python實現(xiàn)列表中由數(shù)值查到索引的方法

    python實現(xiàn)列表中由數(shù)值查到索引的方法

    今天小編就為大家分享一篇python實現(xiàn)列表中由數(shù)值查到索引的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Pandas加速代碼之避免使用for循環(huán)

    Pandas加速代碼之避免使用for循環(huán)

    如果你使用Python和Pandas進行數(shù)據(jù)分析,循環(huán)是不可避免要使用的。這篇文章主要給大家介紹了關(guān)于Pandas加速代碼之避免使用for循環(huán)的相關(guān)資料,需要的朋友可以參考下
    2021-05-05
  • 最新評論