久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    Python中堪稱神仙的6個內(nèi)置函數(shù)

     hercules028 2022-05-24 發(fā)布于四川

    圖片

    人生苦短,我用Python!

    我是菜鳥哥,今天,咱們就來了,我們會一次性分享6個堪稱神仙的內(nèi)置函數(shù)。在很多計算機書籍中,它們也通常作為高階函數(shù)來介紹。而我自己在日常工作中,經(jīng)常使用它們來使代碼更快,更易于理解。

    圖片

    Lambda 函數(shù)

    Lambda函數(shù)用于創(chuàng)建匿名函數(shù),即沒有名稱的函數(shù)。它只是一個表達式,函數(shù)體比def簡單很多。當我們需要創(chuàng)建一個函數(shù)來執(zhí)行單個操作并且可以在一行中編寫時,就可以用到匿名函數(shù)了。

    lambda [arg1 [,arg2,.....argn]]:expression

    lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。例如:

    lambda x: x+2

    如果我們也想像def定義的函數(shù)隨時調(diào)用,可以將lambda函數(shù)分配給這樣的函數(shù)對象。

    add2 = lambda x: x+2
    add2(10)

    輸出結(jié)果:

    圖片

    利用Lambda函數(shù),可以將代碼簡化很多,具體再舉個例子。

    圖片

    如上圖所示,結(jié)果列表newlist是使用lambda函數(shù)用一行代碼生成的。

    Map 函數(shù)

    map()函數(shù)會將一個函數(shù)映射到一個輸入列表的所有元素上。

    map(function,iterable)

    比如我們先創(chuàng)建了一個函數(shù)來返回一個大寫的輸入單詞,然后將此函數(shù)應有到列表colors中的所有元素。

    def makeupper(word):
        return word.upper()

    colors=['red','yellow','green','black']
    colors_uppercase=list(map(makeupper,colors))
    colors_uppercase

    輸出結(jié)果:

    圖片

    此外,我們還可以使用匿名函數(shù)lambda來配合map函數(shù),這樣可以更加精簡。

    colors=['red','yellow','green','black']
    colors_uppercase=list(map(lambda x: x.upper(),colors))
    colors_uppercase

    如果我們不用Map函數(shù)的話,就需要使用for循環(huán)。

    圖片

    如上圖所示,在實際使用中Map函數(shù)會比for循環(huán)依次列表元素的方法快1.5倍。

    Reduce函數(shù)

    當需要對一個列表進行一些計算并返回結(jié)果時,reduce()是個非常有用的函數(shù)。舉個例子,當需要計算一個整數(shù)列表所有元素的乘積時,即可使用reduce函數(shù)實現(xiàn)。[1]

    它與函數(shù)的最大的區(qū)別就是,reduce()里的映射函數(shù)(function)接收兩個參數(shù),而map接收一個參數(shù)。

    reduce(function, iterable[, initializer]) 

    接下來我們用實例來演示reduce()的代碼執(zhí)行過程。

    from functools import reduce
    def add(x, y) :   # 兩數(shù)相加
        return x + y
    numbers = [1,2,3,4,5]
    sum1 = reduce(add, numbers)   # 計算列表和

    得到結(jié)果sum1 = 15,其代碼執(zhí)行過程如下方動圖所示。

    圖片
    ▲代碼執(zhí)行過程動圖

    結(jié)合上圖我們會看到,reduce將一個相加函數(shù)add()作用在一個列表[1,2,3,4,5]上,映射函數(shù)接收了兩個參數(shù),reduce()把結(jié)果繼續(xù)和列表的下一個元素做累加計算。

    此外,我們同樣可以使用匿名函數(shù)lambda來配合reduce函數(shù),這樣可以更加精簡。

    from functools import reduce
    numbers = [1,2,3,4,5]
    sum2 = reduce(lambda x, y: x+y, numbers)

    得到輸出sum2= 15,與之前結(jié)果保持一致。

    需要注意:Python3.x開始reduce()已經(jīng)被移到functools模塊里[2],如果我們要使用,需要用from functools import reduce導入.

    enumerate 函數(shù)

    enumerate()函數(shù)用于將一個可遍歷的數(shù)據(jù)對象(如列表、元組或字符串)組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標,一般用在for循環(huán)當中。它的語法如下所示:

    enumerate(iterable, start=0)

    它的兩個參數(shù),一個是序列、迭代器或其他支持迭代對象;另一個是下標起始位置,默認情況從0開始,也可以自定義計數(shù)器的起始編號。

    colors = ['red''yellow''green''black']
    result = enumerate(colors)

    如果我們有一個存放colors的顏色列表,運行后就會得到一個enumerate(枚舉) 對象。它可以直接在for循環(huán)中使用,也可以轉(zhuǎn)換為列表,具體用法如下所示。

    for count, element in result:
        print(f'迭代編號:{count},對應元素:{element}')
    圖片

    Zip 函數(shù)

    zip()函數(shù)用于將可迭代的對象作為參數(shù),將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表[3]。

    我們還是用兩個列表作為例子演示:

    colors = ['red''yellow''green''black']
    fruits = ['apple''pineapple''grapes''cherry']
    for item in zip(colors,fruits):
        print(item)

    輸出結(jié)果:

    圖片

    當我們使用zip()函數(shù)時,如果各個迭代器的元素個數(shù)不一致,則返回列表長度與最短的對象相同。

    prices =[100,50,120]
    for item in zip(colors,fruits,prices):
        print(item)
    圖片

    Filter 函數(shù)

    filter()函數(shù)用于過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表,其語法如下所示[4]。

    filter(function, iterable)

    比如舉個例子,我們可以先創(chuàng)建一個函數(shù)來檢查單詞是否為大寫,然后使用filter()函數(shù)過濾出列表中的所有奇數(shù):

    def is_odd(n):
        return n % 2 == 1

    old_list = [12345678910]

    new_list = filter(is_odd, old_list)
    print(newlist)

    輸出結(jié)果:

    圖片

    今天分享的這6個內(nèi)置函數(shù),在使用 Python 進行數(shù)據(jù)分析或者其他復雜的自動化任務時非常方便。

    如果喜歡本文,歡迎給右下角點贊??

    參考資料

    [1]

    書籍:

    [2]

    菜鳥教程:

    [3]

    菜鳥教程:

    [4]

    towardsdatascience:

    --- EOF ---

      本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 国产稚嫩高中生呻吟激情在线视频| 中文字幕国产精品二区| 国产精品一码在线播放| 国产熟睡乱子伦视频在线播放 | AV人摸人人人澡人人超碰| 国产成人精品久久综合| 一区二区三区精品视频免费播放| 麻豆成人精品国产免费| 亚洲偷自拍国综合| 乱码中字在线观看一二区| 色综合久久久久综合体桃花网| 亚洲第一极品精品无码久久| 亚洲色大成网站WWW永久麻豆| 国产色视频网站免费| 成人片黄网站色大片免费观看软件| 成人无码潮喷在线观看| 国产精品久久久久免费观看| 国产成人亚洲日韩欧美| 2021国产精品视频网站| 国产精品无码专区| 国产综合久久99久久| 久久久久久综合网天天| 国产午夜成人无码免费看| 又粗又硬又黄a级毛片| 丰满爆乳在线播放| 无码激情亚洲一区| 国产精品一区二区AV| 色妞色综合久久夜夜| 在线高清免费不卡全码| 亚洲一区二区三区无码久久| 国产成AV人片在线观看天堂无码 | 做暖暖视频在线看片免费 | 草草影院精品一区二区三区 | 玩弄漂亮少妇高潮白浆| 99国产欧美另类久久久精品| 国产农村妇女毛片精品久久| 777米奇色狠狠俺去啦| 久久精品第九区免费观看| 起碰免费公开97在线视频| 久久精品国产99久久久古代| 久久精品毛片免费观看|