本篇文章為大家帶來了關於python的相關知識,其中主要介紹了關於內建函數的相關問題,主要見一下六個超好用的函數,包括了Lambda、map 、reduce、zip、filter、enumerate函數,下面一起來看一下,希望對大家有幫助。
推薦學習:python影片教學
#Lambda 函數
Lambda
函數用於建立匿名函數,即沒有名稱的函數。它只是一個表達式,函數體比def簡單很多。當我們需要建立一個函數來執行單一操作並且可以在一行中編寫時,就可以用到匿名函數了。
lambda [arg1 [,arg2,.....argn]]:expression
lambda的主體是一個表達式,而不是一個程式碼區塊。僅能在lambda表達式中封裝有限的邏輯進去。例如:
lambda x: x+2
如果我們也想像def定義的函數隨時調用,可以將lambda函數
分配給這樣的函數物件。
add2 = lambda x: x+2add2(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 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}")
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 == 1old_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] new_list = filter(is_odd, old_list)print(newlist)
输出结果:
今天分享的这6个内置函数,在使用 Python 进行数据分析或者其他复杂的自动化任务时非常方便。
推荐学习:python视频教程
以上是介紹六個超好用的Python內建函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python和C 各有優勢,選擇應基於項目需求。 1)Python適合快速開發和數據處理,因其簡潔語法和動態類型。 2)C 適用於高性能和系統編程,因其靜態類型和手動內存管理。

選擇Python還是C 取決於項目需求:1)如果需要快速開發、數據處理和原型設計,選擇Python;2)如果需要高性能、低延遲和接近硬件的控制,選擇C 。

通過每天投入2小時的Python學習,可以有效提升編程技能。 1.學習新知識:閱讀文檔或觀看教程。 2.實踐:編寫代碼和完成練習。 3.複習:鞏固所學內容。 4.項目實踐:應用所學於實際項目中。這樣的結構化學習計劃能幫助你係統掌握Python並實現職業目標。

在兩小時內高效學習Python的方法包括:1.回顧基礎知識,確保熟悉Python的安裝和基本語法;2.理解Python的核心概念,如變量、列表、函數等;3.通過使用示例掌握基本和高級用法;4.學習常見錯誤與調試技巧;5.應用性能優化與最佳實踐,如使用列表推導式和遵循PEP8風格指南。

Python適合初學者和數據科學,C 適用於系統編程和遊戲開發。 1.Python簡潔易用,適用於數據科學和Web開發。 2.C 提供高性能和控制力,適用於遊戲開發和系統編程。選擇應基於項目需求和個人興趣。

Python更適合數據科學和快速開發,C 更適合高性能和系統編程。 1.Python語法簡潔,易於學習,適用於數據處理和科學計算。 2.C 語法複雜,但性能優越,常用於遊戲開發和系統編程。

每天投入兩小時學習Python是可行的。 1.學習新知識:用一小時學習新概念,如列表和字典。 2.實踐和練習:用一小時進行編程練習,如編寫小程序。通過合理規劃和堅持不懈,你可以在短時間內掌握Python的核心概念。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

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

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。