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

5 個越早知道越好的 Python 特性

2019-12-30    來源:raincent

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

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

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

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

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

1.理解 List——壓縮代碼

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

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

 

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

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

 

2.列表循環(huán)

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

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

 

 

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

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

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

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

 

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

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

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

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

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

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

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

 

 

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

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

 

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

參考文章:

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 編程語言

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

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

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