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

Python匿名函數(shù)詳情

 更新時(shí)間:2021年11月02日 08:29:54   作者:一碗周  
這篇文章主要介紹了Python匿名函數(shù),在python中,除了一般使用def定義的函數(shù)外,還有一種使用lambda定義的匿名函數(shù),這種函數(shù)可以用在任何普通函數(shù)可以使用的地方,但在定義時(shí)被嚴(yán)格限定為單一表達(dá)式,下面來(lái)看詳細(xì)內(nèi)容吧

1、匿名函數(shù)

python中,除了一般使用def定義的函數(shù)外,還有一種使用lambda定義的匿名函數(shù)。這種函數(shù)可以用在任何普通函數(shù)可以使用的地方,但在定義時(shí)被嚴(yán)格限定為單一表達(dá)式。從語(yǔ)義上講,它只是普通函數(shù)的語(yǔ)法糖。

如果我們需要定義一個(gè)特別簡(jiǎn)單的函數(shù),例如

def add(a, b):
    s = a + b
    return s

這就出現(xiàn)問(wèn)題了,這么優(yōu)雅的Python怎么可以出現(xiàn)這種難看的代碼呢,有沒(méi)有辦法可以將其簡(jiǎn)化為1行代碼呢?這么優(yōu)雅的Python肯定有辦法將其簡(jiǎn)化的方法??!這要用到匿名函數(shù)了。

python中使用 **lambda**關(guān)鍵字來(lái)創(chuàng)建匿名函數(shù)。

語(yǔ)法格式:

lambda [參數(shù)1 [,參數(shù)2,..參數(shù)n]]:表達(dá)式

lambda 參數(shù)列表:return [表達(dá)式] 變量

由于lambda返回的是函數(shù)對(duì)象(構(gòu)建的是一個(gè)函數(shù)對(duì)象),所以需要定義一個(gè)變量去接收

示例代碼如下:

news_add = lambda a, b: a + b
# 上面的那個(gè)等于
def news_add_old(a, b):
    return a + b

x = news_add_old(5, 10)
y = news_add(5, 10)  # 調(diào)用匿名函數(shù)
print(x, y)  # 15 15

2、內(nèi)置函數(shù)使用

結(jié)合內(nèi)置函數(shù)使用:

list1 = [{"a": 10, "b": 20}, {"a": 20, "b": 20}, {"a": 50, "b": 20}, {"a": 6, "b": 20}, {"a": 9, "b": 20}]

# 那個(gè)列表中的a最大
max_value = max(list1, key=lambda x: x["a"])
print(max_value)

# 如果用普通的函數(shù)寫(xiě)就多了幾行
def func(di):
    return di["a"]
max_value = max(list1, key=func)  # 這里不能加()不然就表示調(diào)用了
print(max_value)

將匿名函數(shù)當(dāng)做參數(shù):

def func(a, b, fun):
    s = fun(a, b)
    return s

z = func(5, 10, lambda a, b: a + b)
print(z)  # 15

lambda可以省去定義函數(shù)的過(guò)程,讓代碼更加精簡(jiǎn),而且不用考慮命名問(wèn)題,但是在PEP8規(guī)范里面是不推薦用lambda這種方式的。

到此這篇關(guān)于Python匿名函數(shù)詳情的文章就介紹到這了,更多相關(guān)Python匿名函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何在Django項(xiàng)目中使用Jinja2模板引擎

    詳解如何在Django項(xiàng)目中使用Jinja2模板引擎

    Django是一個(gè)強(qiáng)大的Python Web框架,它提供了一個(gè)內(nèi)置的模板引擎,然而,在某些場(chǎng)景中,開(kāi)發(fā)者可能傾向于使用更快、更靈活的模板引擎,比如Jinja2,在本文中,我們將詳細(xì)探討如何在Django項(xiàng)目中使用Jinja2模板引擎,并提供豐富的示例
    2023-11-11
  • Python自動(dòng)化測(cè)試工具Splinter簡(jiǎn)介和使用實(shí)例

    Python自動(dòng)化測(cè)試工具Splinter簡(jiǎn)介和使用實(shí)例

    這篇文章主要介紹了Python自動(dòng)化測(cè)試工具Splinter簡(jiǎn)介和使用實(shí)例,Splinter可以非常棒的模擬瀏覽器的行為,Splinter提供了豐富的API,可以獲取頁(yè)面的信息判斷當(dāng)前的行為所產(chǎn)生的結(jié)果
    2014-05-05
  • Python中Proxypool庫(kù)的安裝與配置

    Python中Proxypool庫(kù)的安裝與配置

    今天小編就為大家分享一篇關(guān)于Python中Proxypool庫(kù)的安裝與配置,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • python同時(shí)遍歷數(shù)組的索引和值的實(shí)例

    python同時(shí)遍歷數(shù)組的索引和值的實(shí)例

    今天小編就為大家分享一篇python同時(shí)遍歷數(shù)組的索引和值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 詳解python中executemany和序列的使用方法

    詳解python中executemany和序列的使用方法

    這篇文章主要介紹了詳解python中executemany和序列的使用方法的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • Python 高級(jí)教程之線程進(jìn)程和協(xié)程的代碼解析

    Python 高級(jí)教程之線程進(jìn)程和協(xié)程的代碼解析

    這篇文章主要介紹了Python 高級(jí)教程之線程進(jìn)程和協(xié)程的代碼解析,包括使用線程模塊的簡(jiǎn)單示例,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Python循環(huán)一行的寫(xiě)法分享

    Python循環(huán)一行的寫(xiě)法分享

    這篇文章主要介紹了Python循環(huán)一行的寫(xiě)法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python之維度dim的定義及其理解使用方式

    Python之維度dim的定義及其理解使用方式

    這篇文章主要介紹了Python之維度dim的定義及其理解使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • DjangoWeb使用Datatable進(jìn)行后端分頁(yè)的實(shí)現(xiàn)

    DjangoWeb使用Datatable進(jìn)行后端分頁(yè)的實(shí)現(xiàn)

    這篇文章主要介紹了DjangoWeb使用Datatable進(jìn)行后端分頁(yè)的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 基于python tkinter的點(diǎn)名小程序功能的實(shí)例代碼

    基于python tkinter的點(diǎn)名小程序功能的實(shí)例代碼

    這篇文章主要介紹了基于python tkinter的點(diǎn)名小程序,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論