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

5 個(gè)越早知道越好的 Python 特性

2019-12-30    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

 作者:skura 來(lái)源:雷鋒網(wǎng)

Kirill Sharkovski 發(fā)布在 Unsplash 雜志上的照片

Python 是近十年來(lái)興起的編程語(yǔ)言,并且被證明是一種非常強(qiáng)大的語(yǔ)言。我用 Python 構(gòu)建了很多應(yīng)用程序,從交互式地圖到區(qū)塊鏈。Python 有很多特性,初學(xué)者很難一開(kāi)始就掌握所有的特性。

即使你是一個(gè)從其他語(yǔ)言(如 C 或 MATLAB)轉(zhuǎn)換過(guò)來(lái)的程序員,用更高抽象級(jí)別的 Python 編寫(xiě)代碼絕對(duì)是另一種體驗(yàn);仡櫰饋(lái),有很多 Python 特性如果我能早點(diǎn)知道,肯定能少走不少?gòu)澛贰,F(xiàn)在我想要重點(diǎn)介紹其中五個(gè)最重要的特性。

1.理解 List——壓縮代碼

很多人會(huì)將 lambda、map 和 filter 作為 Python 的「技巧」,每個(gè)初學(xué)者都應(yīng)該學(xué)習(xí)這些技巧。雖然我相信它們是我們應(yīng)該掌握的特性,但我發(fā)現(xiàn)由于缺乏靈活性,它們?cè)诖蠖鄶?shù)時(shí)候并不特別有用。

Lambda 是一種在一行中組合函數(shù)以供一次性使用的方法。如果函數(shù)被多次調(diào)用,性能將受到影響。另一方面,map 將函數(shù)應(yīng)用于列表中的所有元素,而 filter 將獲取滿足用戶定義條件的集合中元素的子集。

 

Anastase Maragos 發(fā)表在 Unsplash 雜志上的照片

列表理解是一種簡(jiǎn)潔而靈活的方法,可以使用靈活的表達(dá)式和條件從其他列表創(chuàng)建列表。它是由方括號(hào)構(gòu)造的,它有一個(gè)表達(dá)式或一個(gè)函數(shù),只有當(dāng)元素滿足某個(gè)條件時(shí),該表達(dá)式或函數(shù)才應(yīng)用于列表中的每個(gè)元素。它還可以嵌套來(lái)處理嵌套列表,并且比使用 map 和 filter 靈活得多。

 

2.列表循環(huán)

Python 允許使用負(fù)索引,其中 Altruts [-1]== Altrue[LeN(Listor)-1 ]。因此,我們可以通過(guò)調(diào)用 a list[-2] 等獲得列表中的倒數(shù)第二個(gè)元素。

我們還可以使用語(yǔ)法 aList[start:end:step] 對(duì)列表進(jìn)行切片,其中包含起始元素,但不包含結(jié)束元素。因此,aList[2:5] 的結(jié)果是 [2,3,4]。我們也可以通過(guò)調(diào)用 a list[::-1] 來(lái)反轉(zhuǎn)列表,我發(fā)現(xiàn)這種技術(shù)非常優(yōu)雅。

 

 

Martin Shreder 發(fā)表在 Unsplash 雜志上的照片

列表也可以分解成單獨(dú)的元素,或者使用星號(hào)將元素和子列表混合。

3.壓縮和枚舉:for 循環(huán)

Zip 函數(shù)創(chuàng)建一個(gè)迭代器,該迭代器聚合來(lái)自多個(gè)列表的元素。它允許在 for 循環(huán)中并行遍歷列表并并行排序。它可以用星號(hào)來(lái)解壓縮。

 

Erol Ahmed 發(fā)表在 Unsplash 雜志上的照片

枚舉一開(kāi)始可能看起來(lái)有點(diǎn)嚇人,但在許多情況下它是非常方便的。它是一個(gè)經(jīng)常在 for 循環(huán)中使用的自動(dòng)計(jì)數(shù)器,不需要在 for 循環(huán)中創(chuàng)建和初始化計(jì)數(shù)器變量 by counter=0 和 counter+=1。枚舉和 zip 是構(gòu)造 for 循環(huán)時(shí)最強(qiáng)大的兩個(gè)工具。

4.生成器:內(nèi)存效率

當(dāng)我們打算對(duì)大量數(shù)據(jù)進(jìn)行計(jì)算,但希望避免同時(shí)分配所有結(jié)果所需的內(nèi)存時(shí),會(huì)使用生成器。換句話說(shuō),它們會(huì)動(dòng)態(tài)生成值,而不會(huì)將以前的值存儲(chǔ)在內(nèi)存中,因此我們只能對(duì)它們進(jìn)行一次迭代。

它們通常用于讀取大文件或使用關(guān)鍵字 yield 生成無(wú)限序列。我經(jīng)常發(fā)現(xiàn)它在我的大多數(shù)數(shù)據(jù)科學(xué)項(xiàng)目中很有用。

5.虛擬環(huán)境:isolation

如果你讀完本文中只記得其中一條,那么應(yīng)該是虛擬環(huán)境的使用。

 

 

Matthew Kwong 發(fā)布在 Unsplash 上的照片

Python 應(yīng)用程序通常使用很多不同的包,這些包來(lái)不同的開(kāi)發(fā)人員,具有復(fù)雜的依賴關(guān)系。不同的應(yīng)用程序是使用特定的庫(kù)設(shè)置開(kāi)發(fā)的,其中的結(jié)果不能使用其他庫(kù)版本復(fù)制。不存在一次安裝就滿足所有應(yīng)用要求的情況。

 

因此,為每個(gè)應(yīng)用程序創(chuàng)建獨(dú)立的獨(dú)立虛擬環(huán)境 venv 是非常重要的,這可以使用 pip 或 conda 來(lái)完成。

參考文章:

Visualizing Bike Mobility in London using Interactive Maps and Animations

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

標(biāo)簽: Python 編程語(yǔ)言

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

上一篇:我們是怎樣打造一款分布式數(shù)據(jù)庫(kù)的

下一篇:2020年數(shù)據(jù)科學(xué)的四大最熱門(mén)趨勢(shì)