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

迭代列表不要For循環(huán),這是Python列表推導式最基本的概念

2019-09-19    來源:raincent

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

如果你還在使用 For 循環(huán)迭代列表,那么你需要了解了解列表推導式,看看它的基本概念都是什么。

列表解析式(List comprehension)或者稱為列表推導式,是 Python 中非常強大和優(yōu)雅的方法。它可以基于現(xiàn)有的列表做一些操作,從而快速創(chuàng)建新列表。在我們第一次見到列表推導式時,可能會感覺這種方法非常炫酷,因此寫列表推導式是非常爽的一件事。

 

 

如果在我們剛接觸 Python 時,列表推導式可能看起來比較復雜,但是了解后會發(fā)現(xiàn)它非常好用。正如上圖所示,列表推導式不僅可讀性非常強,它所需要的代碼量是最少的,它的執(zhí)行速度也是最快的。

對于列表推導式,我們可以從列表中選擇具體的元素,并做一些操作和判斷,從而創(chuàng)建新的列表。值得注意的是,我們甚至能使用 Pandas Series 或 NumPy Array 進行列表推導操作。下面讓我們具體看看列表推導是什么吧!

什么是列表推導式

如果我們有一個列表,并希望抽取列表中的元素,那么最標準的方法是使用 Python 循環(huán),但是我們也可以直接通過列表推導式,它只需一行代碼就能搞定所有操作。當然,抽取列表元素的前提是,我們要理解列表是一種可迭代對象,它允許依次讀取不同的元素。

想象一下,如果動物園中有很多不同的動物,每年每一只動物都需要定期體檢,那么動物園就是列表。我們可以遍歷整個動物園,并依次抽取動物,抽取的動物并不做進一步的處理,直接放到體檢列表中。如下所示為一般 Python 循環(huán)的做法:

# Creating our animal park
animal_park = ['Rabbit','Rabbit','Rabbit','Rabbit','Cat','Cat','Cat','Cat','Cat','Cat','Cat', 'Turtle','Turtle','Turtle','Turtle','Turtle','Turtle','Turtle', 'Dog','Dog', 'Kangaroo','Kangaroo','Kangaroo','Kangaroo','Kangaroo','Kangaroo']

# Creating a new list for our animal doctor with all animals
animal_doctor = []
for animal in animal_park:
animal_doctor.append(animal)

 

上面的代碼很簡單,用一個 for 循環(huán)就行,它的語義也很容易理解。如下我們可以使用列表推導式重寫這一個循環(huán):

animal_doctor = [animal for animal in animal_park]

通過列表推導式,我們將代碼量由三行降低到一行。如果對比兩者,我們會發(fā)現(xiàn)它們其實是一樣的,差不多都是創(chuàng)建、遍歷和接收三部分。

 

 

圖1:標準循環(huán)與列表推導的對比。

條件語句

這樣看起來列表推導式也沒什么大不了,但別忘了它還能對元素做進一步操作,例如加個條件語句。在標準的列表循環(huán)中,我們的條件語句如下所示會加到 for 循環(huán)中。

animal_doctor = []
for animal in animal_park:
if animal != 'Dog' and animal != 'Cat':
animal_doctor.append(animal)

 

在列表推導式中,我們可以將條件加到里面,用稍微長一點的單行代碼完成整個流程。上面代碼塊可以等價地表達為:

nimal_doctor = [animal for animal in animal_park if animal != 'Dog' and animal != 'Cat']

另外非常重要的一點是,列表推導式的速度非?。如下兩者都加了條件語句,但是列表推導式要比一般的循環(huán)語句快了 51%。

 

 

圖2:列表推導與標準循環(huán)二者速度的對比。

最后,如果你使用過列表推導式創(chuàng)建新的列表,那么你最好一直使用它,因為我們沒有原因再使用標準 Python 循環(huán)。我們可以發(fā)現(xiàn),只要明晰了基本概念,那么列表推導式還是非常容易使用的。

原文鏈接:https://towardsdatascience.com/python-list-comprehension-in-3-minutes-and-3-reasons-why-you-should-use-it-bf398654caf9

標簽: Python

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

上一篇:政務大數(shù)據(jù)治理中公民權利保護的國際經(jīng)驗

下一篇:谷歌開始收集面部數(shù)據(jù),隱私問題再度引爆