站長資訊網
        最全最豐富的資訊網站

        介紹六個超好用的Python內置函數

        本篇文章給大家帶來了關于python的相關知識,其中主要介紹了關于內置函數的相關問題,主要見一下六個超好用的函數,包括了Lambda、map、reduce、zip、filter、enumerate函數,下面一起來看一下,希望對大家有幫助。

        介紹六個超好用的Python內置函數

        推薦學習:python視頻教程

        Lambda 函數

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

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

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

        lambda x: x+2

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

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

        輸出結果:

        介紹六個超好用的Python內置函數

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

        介紹六個超好用的Python內置函數

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

        Map 函數

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

        map(function,iterable)

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

        def makeupper(word):     return word.upper()colors=['red','yellow','green','black']colors_uppercase=list(map(makeupper,colors))colors_uppercase

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

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

        如果我們不用Map函數的話,就需要使用for循環。

        介紹六個超好用的Python內置函數

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

        Reduce函數

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

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

        reduce(function, iterable[, initializer])

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

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

        得到結果sum1 = 15

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

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

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

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

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

        enumerate 函數

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

        enumerate(iterable, start=0)

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

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

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

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

        介紹六個超好用的Python內置函數

        Zip 函數

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

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

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

        輸出結果:

        介紹六個超好用的Python內置函數

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

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

        介紹六個超好用的Python內置函數

        Filter 函數

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

        filter(function, iterable)

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

        def is_odd(n):     return n % 2 == 1old_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]     new_list = filter(is_odd, old_list)print(newlist)

        輸出結果:

        介紹六個超好用的Python內置函數


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

        推薦學習:python視頻教程

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 2021国产三级精品三级在专区| 国产香蕉国产精品偷在线观看| 亚洲午夜精品久久久久久人妖| 欲帝精品福利视频导航| 嫩草影院久久国产精品| 中文字幕无码久久精品青草| 国产三级精品三级在线观看| 国产成人精品日本亚洲专| 亚洲中文久久精品无码| 精品无码综合一区| 亚洲精品国产成人99久久| 国产精品丝袜黑色高跟鞋| 亚洲精品综合久久| 久久精品国产色蜜蜜麻豆| 国产精品成人h片在线| 国产大片91精品免费观看不卡| 无码精品国产VA在线观看| 人妻少妇精品无码专区动漫| 国产欧美精品区一区二区三区| 午夜精品视频在线观看| 99久久这里只有精品| 久久精品aⅴ无码中文字字幕不卡| 亚洲精品视频免费观看| 久久精品国产精品亜洲毛片| 国产精品国产三级在线高清观看 | 国产精品伦理久久久久久| 91视频精品全国免费观看| 999久久久无码国产精品| 国产精品亚洲аv无码播放| 久久精品国产亚洲av麻豆小说| 午夜精品久久久久久中宇| 熟女精品视频一区二区三区| 亚洲精品乱码久久久久久蜜桃图片 | 亚洲精品宾馆在线精品酒店| 免费精品精品国产欧美在线欧美高清免费一级在线 | 亚洲av日韩av天堂影片精品| 永久免费精品影视网站| 中文精品无码中文字幕无码专区| 亚洲一级Av无码毛片久久精品| 一本久久a久久精品vr综合| 无码精品人妻一区二区三区中|