国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python趣味入門11:函數(shù)作為參數(shù)以及匿名函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了Python趣味入門11:函數(shù)作為參數(shù)以及匿名函數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Python函數(shù)本質(zhì)上是一段代碼的集合,擴(kuò)展對(duì)于函數(shù)的高級(jí)用法,有利于更好的認(rèn)識(shí)Python,函數(shù)是Python的核心。本篇擴(kuò)展了函數(shù)的2個(gè)應(yīng)用,一是把函數(shù)本身作為參數(shù),二是介紹了匿名函數(shù)的應(yīng)用。

1、以函數(shù)作為參數(shù):

1.1 概念

Python里可以把函數(shù)本身當(dāng)成是參數(shù),比如Python內(nèi)置函數(shù)map可以通過傳入的函數(shù)返回值來一一映射列表集合里的元素,我們也可以在定義函數(shù)時(shí),以調(diào)用函數(shù)的方式使用參數(shù)。

1.2 Map映射

假設(shè)有一個(gè)列表1至9共有9個(gè)元素,現(xiàn)在需要求其平方數(shù)列。

map(函數(shù)名,列表)

map函數(shù)的示例

1 >>> def square(x):
2 ...     return x**2
3 ... 
4 >>> s = map(square,[1,2,3,4,5,6,7,8,9])
5 >>> list(s)
6 [1, 4, 9, 16, 25, 36, 49, 64

?

以上的代碼,主要完成了如下的動(dòng)作:

  • 定義了square函數(shù),返回參數(shù)的平方
  • 調(diào)用map函數(shù)生成平方數(shù)列

在包含map語句,我們使用了先前定義的函數(shù)名稱square,作為參數(shù)傳入另一個(gè)函數(shù),并且完成了映射的操作。

1.3 定義包含函數(shù)參數(shù)的函數(shù)

鄧布利多校長想比較霍格沃茨學(xué)校兩個(gè)班a,b的成績,有兩種比較方式,一種是比較最高分,另一種是比較平均分,我們用一個(gè)函數(shù)來搞定!

>>> def compare(way,a,b):
...     if way(a)>way(b):
...             print('a班贏了')
...     elif way(a)==way(b):
...             print('平了')
...     else:
...             print('b班贏了')
>>> from statistics import mean 
>>> compare(mean,[90,80,90],[100,50,100])
a班贏了
>>> compare(max,[90,80,90],[100,50,100])
b班贏了

?

上面的代碼定義了函數(shù)compare,其中有三個(gè)參數(shù):

  • way: 函數(shù)參數(shù),表示比較方式,是不是函數(shù)參數(shù)我們從代碼中發(fā)現(xiàn),在代碼中way后緊跟圓括號(hào),判斷這是分別對(duì)a、b進(jìn)行“某種”操作。
  • a、b: 列表分別表示兩個(gè)班的成績。

在第1調(diào)用時(shí)是平均分比較,結(jié)果是a班贏了。

compare(mean,[90,80,90],[100,50,100])

平均分代碼引用了statistics模塊的mean,本函數(shù)用來計(jì)算列表的平均值。

2、匿名函數(shù):

2.1 概念

如果把每個(gè)函數(shù)形容成是固定下來的武術(shù)套路的話,有的時(shí)候簡單的一兩招,并不值得編成一個(gè)套路。我們定義函數(shù)也是這樣,匿名函數(shù)類似于簡單的兩招,它是一種簡化版的函數(shù),它沒有自己的名稱,也不能被重復(fù)使用,但是它必須返回值,使用匿名函數(shù)的目的就是快速計(jì)算。

在Python當(dāng)中匿名函數(shù)又叫:lambda表達(dá)式,其語法如下:

lambda [arg1[, arg2, ... argN]]: expression
  • 以關(guān)鍵字lambda開頭
  • 后緊跟參數(shù)列表,使用逗號(hào)分隔
  • 冒號(hào)后跟計(jì)算式,函數(shù)返回值就是計(jì)算式的結(jié)果

表達(dá)式本身可以當(dāng)成一個(gè)函數(shù)來使用,常用的栗子如下。

2.2 排序

Python內(nèi)置排序sorted函數(shù),語法如下:

sorted(列表,key=排序關(guān)鍵字)
  • 參數(shù)key:返回關(guān)鍵字的函數(shù)(一般使用匿名函數(shù))
  • 返回值:排序好的列表結(jié)果

排序時(shí)程序會(huì)把列表中的單個(gè)元素放入?yún)?shù)key指定的函數(shù)當(dāng)中的參數(shù)里,根據(jù)返回的值進(jìn)行排序。

目前直男小牛叔在寫復(fù)旦大學(xué)的畢業(yè)論文,論文的標(biāo)題都是類似于1、1.1、2之類的文本,如果簡單按字符排序必然會(huì)出現(xiàn)1、10、1.10、1.2 ...... 不合理的奇怪序列(字符總是從前到后比較那么10會(huì)比2?。?,比如如下的列表['10','1.1','1','2','1.3','3','2.10','2.2'],我們可以使用如下的代碼:

1 >>> a = ['10','1.1','1','2','1.3','3','2.10','2.2']
2 >>> sorted(a)
3 ['1', '1.1', '1.3', '10', '2', '2.10', '2.2', '3']
4 >>> sorted(a,key = lambda x:int(x.split('.')[0]) + (int(x.split('.')[1])/10000 if '.' in x else 0))
5 ['1', '1.1', '1.3', '2', '2.2', '2.10', '3', '10']
6 >>> 

?

我們先看看key參數(shù)當(dāng)中的匿名函數(shù)是什么:文章來源地址http://www.zghlxwxcb.cn/news/detail-762348.html

引申:Python語言把函數(shù)也當(dāng)成是類似于一種包含代碼的變量,函數(shù)本身可以類似于變量,作為傳遞的參數(shù),這本是Javascript等類似函數(shù)式編程的方式。其實(shí),函數(shù)也可以被當(dāng)成是返回值。

---小牛書0基礎(chǔ)Python系列教程---

【每天1篇1周入門,請(qǐng)點(diǎn)擊下方的喜歡和收藏,以備學(xué)習(xí)】

到了這里,關(guān)于Python趣味入門11:函數(shù)作為參數(shù)以及匿名函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Go語言入門9(匿名函數(shù) 閉包)

    ?顧名思義,就是沒有名字的函數(shù)。。。 匿名函數(shù)的兩種執(zhí)行方法 將匿名函數(shù)賦給一個(gè)變量 定義后立即執(zhí)行匿名函數(shù) ?閉包是由函數(shù)和與其相關(guān)的引用環(huán)境組合而成的實(shí)體,個(gè)人認(rèn)為就是把一個(gè)函數(shù)以及函數(shù)所用到的參數(shù)用另外一個(gè)函數(shù)包起來,保證函數(shù)多次運(yùn)行的時(shí)候,

    2023年04月24日
    瀏覽(30)
  • C++的引用變量作為函數(shù)參數(shù)

    C++的引用變量作為函數(shù)參數(shù)

    在C++的中新增一個(gè)特性:按引用傳遞變量,雖然與按傳遞變量的地址可以實(shí)現(xiàn)相同的結(jié)果,但引用有其獨(dú)特的地方。 引用傳遞: 引用經(jīng)常被用作函數(shù)參數(shù),使得函數(shù)中的變量名成為調(diào)用程序中的變量的別名。 通過引用變量用作參數(shù),函數(shù)將使用原始數(shù)據(jù),而不是其副本。 舉

    2023年04月14日
    瀏覽(21)
  • 面試之快速學(xué)習(xí)c++11- 列表初始化和 lambda匿名函數(shù)的定義

    學(xué)習(xí)地址: http://c.biancheng.net/view/3730.html 我們知道,在 C++98/03 中的對(duì)象初始化方法有很多種,請(qǐng)看下面的代碼: 2 .為了統(tǒng)一初始化方式,并且讓初始化行為具有確定的效果,C++11 中提出了列表初始化(List-initialization)的概念。 3 . 在上面我們已經(jīng)看到了,對(duì)于普通數(shù)組和

    2024年02月13日
    瀏覽(23)
  • 【Python入門篇】——Python函數(shù)(函數(shù)介紹,函數(shù)的定義,函數(shù)的參數(shù)和函數(shù)的返回值)

    【Python入門篇】——Python函數(shù)(函數(shù)介紹,函數(shù)的定義,函數(shù)的參數(shù)和函數(shù)的返回值)

    作者簡介: 辭七七,目前大一,正在學(xué)習(xí)C/C++,Java,Python等 作者主頁: 七七的個(gè)人主頁 文章收錄專欄: Python入門,本專欄主要內(nèi)容為Python的基礎(chǔ)語法,Python中的選擇循環(huán)語句,Python函數(shù),Python的數(shù)據(jù)容器等。 歡迎大家點(diǎn)贊 ?? 收藏 ? 加關(guān)注哦!???? 函數(shù):是組織好的

    2024年02月08日
    瀏覽(25)
  • 使用變量作為參數(shù)的CSS rgba()函數(shù)詳解

    CSS的rgba()函數(shù)用于設(shè)置顏色值的透明度。在實(shí)際開發(fā)中,我們可能希望通過變量來動(dòng)態(tài)設(shè)置顏色透明度,以實(shí)現(xiàn)更靈活的樣式效果。本文將詳細(xì)介紹如何在rgba()函數(shù)中使用變量作為參數(shù),并提供豐富的示例代碼,助你靈活控制元素的透明度。 rgba()函數(shù)是CSS3中的一種顏色函數(shù)

    2024年02月14日
    瀏覽(33)
  • C語言指針操作(二)指針變量作為函數(shù)參數(shù)

    C語言指針操作(二)指針變量作為函數(shù)參數(shù)

    指針變量作為函數(shù)參數(shù)詳解,形參和實(shí)參之間的值傳遞如何傳遞?如何改變指針變量所指向的變量? 函數(shù)的參數(shù)不僅可以是整型,浮點(diǎn)型,字符型等數(shù)據(jù),還可以是指針類型;它的作用是將一個(gè)變量的地址傳送到另一個(gè)函數(shù)中。 關(guān)于地址,指針,指針變量可以參考一下這篇

    2024年02月04日
    瀏覽(26)
  • 使用指針或引用作為函數(shù)參數(shù)的編程技巧

    空指針檢查: 使用指針允許在函數(shù)內(nèi)部檢查傳遞的指針是否為 nullptr 。這使得在函數(shù)內(nèi)部能夠處理空指針的情況,增加代碼的健壯性。如果使用引用,無法表示空值,而使用指針則可以通過傳遞 nullptr 來表示缺失的數(shù)據(jù)。

    2024年02月16日
    瀏覽(21)
  • 【Python基礎(chǔ)】Python函數(shù)(匿名函數(shù))

    Q:如果一個(gè)函數(shù)要有 多個(gè)返回值 ,該如何書寫代碼? 按照返回值的順序,寫對(duì)應(yīng)順序的多個(gè)變量接收即可 變量之間用逗號(hào)隔開 支持不同類型的數(shù)據(jù)return (1)位置參數(shù) 位置參數(shù):調(diào)用函數(shù)時(shí)根據(jù)函數(shù)定義的 參數(shù)位置來傳遞參數(shù) Tip:傳遞的參數(shù) 和 定義的參數(shù) 順序及個(gè)數(shù)必須

    2024年02月08日
    瀏覽(24)
  • python 匿名函數(shù)(lambda函數(shù))

    Python中的匿名函數(shù)是指沒有命名標(biāo)識(shí)符的函數(shù),通常被稱為lambda函數(shù)。與普通函數(shù)不同,它們是一種更加簡潔的方式來編寫小型臨時(shí)函數(shù)。在Python中,匿名函數(shù)使用 lambda 來定義,其語法如下: 其中, arguments 表示函數(shù)參數(shù),可以是一個(gè)或多個(gè),多個(gè)參數(shù)之間用逗號(hào)分隔

    2024年02月02日
    瀏覽(21)
  • 【0基礎(chǔ)入門Python筆記】三、python 之函數(shù)以及常用內(nèi)置函數(shù)

    【0基礎(chǔ)入門Python筆記】三、python 之函數(shù)以及常用內(nèi)置函數(shù)

    函數(shù)是一種用于封裝可重復(fù)使用代碼塊的工具,能夠?qū)⒁幌盗胁僮鹘M織成一個(gè)邏輯單元。 函數(shù)定義 在Python中,函數(shù)通過def進(jìn)行定義,后面跟著函數(shù)的名稱、參數(shù)列表和冒號(hào)。函數(shù)的主體代碼塊縮進(jìn),并在需要時(shí)使用return返回值。 在上面的示例中,我們定義了一

    2024年02月12日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包