Python中堪稱神仙的六個內建函數
人生苦短,菜鳥學Python!
我是菜鳥哥,今天,我們會一次分享6個堪稱神仙的內建函數。在許多計算機書籍中,它們也通常被介紹為高階函數。而我自己在日常工作中,經常使用它們來使程式碼更快,更易於理解。
Lambda 函數
Lambda函數用於建立匿名函數,即沒有名稱的函數。它只是一個表達式,函數體比def簡單很多。當我們需要建立一個函數來執行單一操作並且可以在一行中編寫時,就可以用到匿名函數了。
lambda [arg1 [,arg2,.....argn]]:expression
lambda的主體是一個表達式,而不是一個程式碼區塊。僅能在lambda表達式中封裝有限的邏輯進去。例如:
lambda x: x+2
如果我們也想像def定義的函數隨時調用,可以將lambda函數分配給這樣的函數物件。
add2 = lambda x: x+2 add2(10)
輸出結果:
利用Lambda函數,可以將程式碼簡化很多,具體再舉例。
如上圖所示,結果清單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迴圈。
如上圖所示,在實際使用中Map函數會比for迴圈依序列表元素的方法快1.5倍。
Reduce函數
當需要對一個列表進行一些計算並傳回結果時,reduce()是個非常有用的函數。舉個例子,當需要計算一個整數列表所有元素的乘積時,即可使用reduce函數實現。 [1]
它與函數的最大的差異就是,reduce()裡的映射函數(function)接收兩個參數,而map接收一個參數。
reduce(function, iterable[, initializer])
接下來我們用實例來示範reduce()的程式碼執行過程。
from functools import reduce def 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 reduce numbers = [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}")
Zip 函数
zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表[3]。
我们还是用两个列表作为例子演示:
colors = ['red', 'yellow', 'green', 'black'] fruits = ['apple', 'pineapple', 'grapes', 'cherry'] for item in zip(colors,fruits): print(item)
输出结果:
当我们使用zip()函数时,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
prices =[100,50,120] for item in zip(colors,fruits,prices): print(item)
Filter 函数
filter()函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表,其语法如下所示[4]。
filter(function, iterable)
比如举个例子,我们可以先创建一个函数来检查单词是否为大写,然后使用filter()函数过滤出列表中的所有奇数:
def is_odd(n): return n % 2 == 1 old_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] new_list = filter(is_odd, old_list) print(newlist)
输出结果:
今天分享的这6个内置函数,在使用 Python 进行数据分析或者其他复杂的自动化任务时非常方便。
以上是Python中堪稱神仙的六個內建函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
