中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

這 5 個 Python 特性,后悔沒早知道

2020-01-15    來源:raincent

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

作者:Eden Au 譯者:劉雅夢

作為近 10 年才崛起的編程語言,Python 已被證明是一種非常強大的語言。從交互式映射到區(qū)塊鏈,我用 Python 構(gòu)建過很多應(yīng)用程序。

對初學(xué)者而言,Python 中有很多特性很難一開始就掌握。

即使你是從其他語言轉(zhuǎn)換過來的程序員,用 Python 進行更高級別的抽象編碼絕對是另一種體驗。有些 Python 特性,我希望自己能早點知道。本文將介紹其 5 個最重要的特性。

1. 列表推導(dǎo)式:代碼更緊湊

很多人認為,lambda、map和filter是初學(xué)者應(yīng)該最先掌握的 Python“技巧”。雖然我也認為應(yīng)關(guān)注這些功能,但由于它們?nèi)狈`活性。

實際上,它們在大多數(shù)情況下并不是非常有用!

Lambda是一種在 1 行中編寫一個一次性使用的函數(shù)的方法。一旦函數(shù)被多次調(diào)用,性能將受到影響。

另一方面,map 可以將一個函數(shù)應(yīng)用于列表中的所有元素,而 filter 能獲取集合中滿足用戶自定義條件的元素子集。

復(fù)制代碼add_func = lambda z: z ** 2is_odd = lambda z: z%2 == 1multiply = lambda x,y: x*yaList = list(range(10))print(aList)# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

列表推導(dǎo)式是一個簡潔而靈活的方法,它使用靈活的表達式和條件通過其他列表來創(chuàng)建新列表。

它用方括號來構(gòu)造,帶有一個表達式或函數(shù),只有當(dāng)列表中的元素滿足某個條件時,該表達式或函數(shù)才作用于列表中的每個元素。

并且,它還能用嵌套來處理嵌套列表,并且這會比使用 map 和 filter 更靈活。

下載地址: python-list-comprehension.py

2、列表操作:實現(xiàn)列表的雙向操作

Python 允許使用反向索引,其中aList[-1] == aList[len(aList)-1] 。所以,我們可以通過調(diào)用aList[-2] 來獲取列表的倒數(shù)第二個元素。

我們還能使用 aList[start:end:step] 語法來對列表進行切片,其中起始元素包含在內(nèi),終止元素不包含在內(nèi)(即 [start,end) 步長為 step 的前閉后開區(qū)間)。

因此,調(diào)用 aList[2:5] 會得到 [2, 3, 4]。我們也能通過調(diào)用 aList[::-1] 來反轉(zhuǎn)列表,這種技術(shù)非常優(yōu)雅。

此外,也可以將列表拆分成單獨的元素,或者使用星號將列表拆分成單個元素和子列表的混合形式。

下載地址: python-unpacking.py

3、 壓縮和枚舉:for 循環(huán)更方便

Zip 函數(shù)會創(chuàng)建一個迭代器,且該迭代器可以對來自多個列表的元素進行聚合。用它可以在 for 循環(huán)中對列表進行并行遍歷和排序。

用星號對其進行解壓。

下載地址: python-zip-1.py

下載地址: python-zip-2.py

開始時, Enumerate 看起來有點嚇人,但在很多情況下使用它確實能方便很多。

它是一個自動計數(shù)器,通常會在 for 循環(huán)中使用它,這樣就不需要再用 counter = 0 和 counter += 1 來創(chuàng)建和初始化計數(shù)器了。枚舉和壓縮是兩個構(gòu)造 for 循環(huán)的最強工具。

.

下載地址: python-enumerate.py

4、生成器:內(nèi)存更高效

當(dāng)我們想要對一個大的結(jié)果集進行計算,但又不想為所有結(jié)果數(shù)據(jù)同時分配內(nèi)存時,我們就可以使用生成器(Generator)了。

換句話說,它會動態(tài)地生成值,并且不會將先前的值存儲在內(nèi)存中,因此我們只能對它們進行一次迭代操作。

當(dāng)讀取大文件或使用關(guān)鍵字 yield 生成無窮數(shù)列時,通常會用它。我發(fā)現(xiàn)在我的大多數(shù)數(shù)據(jù)科學(xué)項目中,它都能發(fā)揮很大作用。

下載地址: python-generator.py

5、虛擬環(huán)境:實現(xiàn)隔離

如果在本文介紹的 5 個特性中只選一個,那么就是虛擬環(huán)境的使用。

Python 應(yīng)用程序通常會用各種不同的包,這些包可能是由具有復(fù)雜依賴關(guān)系的不同開發(fā)人員開發(fā)的。每個應(yīng)用程序都會用特定的庫設(shè)置,使用其他庫的版本無法實現(xiàn)對某個應(yīng)用程序安裝包的復(fù)制。

所以,不存在滿足所有應(yīng)用要求的單個安裝包。

為每個應(yīng)用程序創(chuàng)建獨立的、自洽的虛擬環(huán)境 venv 非常重要,這可以通過使用 pip 或 conda來實現(xiàn)。

原文鏈接:

https://towardsdatascience.com/5-python-features-i-wish-i-had-known-earlier-bc16e4a13bf4

標簽: Python

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:AI 基礎(chǔ)設(shè)施革命:數(shù)據(jù)隱私保護和價值挖掘的實踐思考

下一篇:數(shù)據(jù)湖和SQL并不矛盾