首頁 後端開發 Python教學 提高python效率的5種進階用法

提高python效率的5種進階用法

Feb 22, 2021 pm 05:29 PM
python

提高python效率的5種進階用法

免費學習推薦:python影片教學

提高python效率的5種進階用法
任何程式語言的高階特徵通常都是透過大量的使用經驗才發現的。例如你在寫一個複雜的項目,並在 stackoverflow 上尋找某個問題的答案。然後你突然發現了一個非常優雅的解決方案,它使用了你從不知道的 Python 功能!

這種學習方式太有趣了:透過探索,偶然發現什麼。

以下是 Python 的 5 種進階特徵,以及它們的用法。

Lambda 函數

Lambda 函數是一種比較小的匿名函數-匿名是指它實際上沒有函數名。

Python 函數通常使用 def a_function_name() 樣式來定義,但對於 lambda 函數,我們根本沒為它命名。這是因為 lambda 函數的函數是執行某種簡單的表達式或運算,而無需完全定義函數。

lambda 函數可以使用任意數量的參數,但表達式只能有一個。
提高python效率的5種進階用法
看它多簡單!我們執行了一些簡單的數學運算,而無需定義整個函數。這是 Python 的眾多特徵之一,這些特徵使它成為一種乾淨、簡單的程式語言。

Map 函數

Map() 是內建的 Python 函數,它可以將函數套用到各種資料結構中的元素,例如列表或字典。對於這種運算來說,這是一種非常乾淨且可讀的執行方式。
提高python效率的5種進階用法
Filter 函數

filter 內建函數與 map 函數非常相似,它也將函數套用到序列結構(列表、元組、字典)。二者的關鍵差異在於 filter() 只會傳回應用函數傳回 True 的元素。

詳情請看以下範例
提高python效率的5種進階用法
我們不僅評估了每個清單元素的 True 或 False,filter() 函數也確保只傳回符合為 True 的元素。非常便於處理檢查表達式和建構返回列表這兩個步驟。

Itertools 模組

Python 的 Itertools 模組是處理迭代器的工具集合。迭代器是一種可以在 for 迴圈語句(包括列表、元組和字典)中使用的資料類型。

使用 Itertools 模組中的函數讓你可以執行許多迭代器操作,這些操作通常需要多行函數和複雜的列表理解。關於Itertools 的神奇之處,請看以下範例:
提高python效率的5種進階用法
提高python效率的5種進階用法
Generator 函數

##Generator 函數是類似迭代器的函數,即它也可以用在for 迴圈語句中。這大大簡化了你的程式碼,而且相比簡單的 for 循環,它節省了很多記憶體。

例如,我們想把 1 到 1000 的所有數字相加,以下程式碼區塊的第一部分向你展示如何使用 for 迴圈來進行這項計算。

如果列表很小,例如 1000 行,計算所需的記憶體還行。但如果清單巨長,像是十億浮點數,這樣做就會出現問題了。使用這個 for 循環,內存中將出現大量列表,但不是每個人都有無限的 RAM 來存儲這麼多東西的。 Python 中的 range() 函數也是這麼乾的,它在記憶體中建立列表。

程式碼中第二部分展示了使用 Python generator 函數對數字列表求和。 generator 函數建立元素,並只在必要時將其儲存在記憶體中,即一次一個。這意味著,如果你要創建十億浮點數,你只能一次一個地把它們儲存在記憶體中! Python 2.x 中的 xrange() 函數就是使用 generator 來建構列表。

上述範例說明:如果你想為一個很大的範圍產生列表,那麼就需要使用 generator 函數。如果你的記憶體有限,例如使用行動裝置或邊緣運算,使用此方法尤其重要。

也就是說,如果你想對列表進行多次迭代,並且它足夠小,可以放進內存,那麼最好使用 for 循環或 Python 2.x 中的 range 函數。因為 generator 函數和 xrange 函數將會在你每次造訪它們時產生新的列表值,而 Python 2.x range 函數是靜態的列表,而且整數已經置於記憶體中,以便快速存取。
提高python效率的5種進階用法
對於初學者想更輕鬆的學好Python開發,爬蟲技術,Python數據分析,人工智慧等技術,這裡也為大家準備了一套python入門到實踐的學習資料,免費領取。

相關免費學習推薦:python教學(影片)

#

以上是提高python效率的5種進階用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

模板化的優點和缺點有哪些? 模板化的優點和缺點有哪些? May 08, 2024 pm 03:51 PM

模板化的優點和缺點有哪些?

Google AI 為開發者發佈 Gemini 1.5 Pro 和 Gemma 2 Google AI 為開發者發佈 Gemini 1.5 Pro 和 Gemma 2 Jul 01, 2024 am 07:22 AM

Google AI 為開發者發佈 Gemini 1.5 Pro 和 Gemma 2

怎麼下載deepseek 小米 怎麼下載deepseek 小米 Feb 19, 2025 pm 05:27 PM

怎麼下載deepseek 小米

分享幾個.NET開源的AI和LLM相關專案框架 分享幾個.NET開源的AI和LLM相關專案框架 May 06, 2024 pm 04:43 PM

分享幾個.NET開源的AI和LLM相關專案框架

deepseek怎麼問他 deepseek怎麼問他 Feb 19, 2025 pm 04:42 PM

deepseek怎麼問他

evaluate函數怎麼保存 evaluate函數怎麼保存 May 07, 2024 am 01:09 AM

evaluate函數怎麼保存

NET40是什麼軟體 NET40是什麼軟體 May 10, 2024 am 01:12 AM

NET40是什麼軟體

deepseek該怎麼搜索 deepseek該怎麼搜索 Feb 19, 2025 pm 05:18 PM

deepseek該怎麼搜索

See all articles