首頁  >  文章  >  後端開發  >  介紹六個超好用的Python內建函數

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

WBOY
WBOY轉載
2022-05-23 18:40:361849瀏覽

本篇文章為大家帶來了關於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视频教程

以上是介紹六個超好用的Python內建函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除