自學(xué)Python教程【第六十四節(jié)】列表綜合
歡迎大家來(lái)到自學(xué)Python教程教室,上一講我們分享了pickle的相關(guān)內(nèi)容,今天來(lái)講講 Python 里一個(gè)我非常喜歡的特性--列表綜合(List Comprehension)。所謂列表綜合,就是通過(guò)一個(gè)已有的列表生成一個(gè)新的列表。
直接看例子:
假設(shè)有一個(gè)由數(shù)字組成的 list,現(xiàn)在需要把其中的偶數(shù)項(xiàng)取出來(lái),組成一個(gè)新的 list。一種比較“正?!钡姆椒ㄊ牵?/p>
list_1 = [1, 2, 3, 5, 8, 13, 22]
list_2 = []
for i in list_1:
if i % 2 == 0:
list_2.append(i)
print list_2
輸出
[2, 8, 22]
此方法通過(guò)循環(huán)來(lái)遍歷列表,對(duì)其中的每一個(gè)元素進(jìn)行判斷,若模取2的結(jié)果為0則添加至新列表中。
使用列表綜合實(shí)現(xiàn)同樣的效果:
list_1 = [1, 2, 3, 5, 8, 13, 22]
list_2 = [i for i in list_1 if i % 2 == 0]
print list_2
輸出
[2, 8, 22]
[i for i in list_1] 會(huì)把 list_1 中的每一個(gè)元素都取出來(lái),構(gòu)成一個(gè)新的列表。
如果需要對(duì)其中的元素進(jìn)行篩選,就在后面加上判斷條件 if。所以 [i for i in list_1 if i % 2 == 0] 就是把 list_1 中滿(mǎn)足 i % 2 == 0 的元素取出來(lái)組成新列表。
進(jìn)一步的,在構(gòu)建新列表時(shí),還可以對(duì)于取出的元素做操作。比如,對(duì)于原列表中的偶數(shù)項(xiàng),取出后要除以2,則可以通過(guò) [i / 2 for i in list_1 if i % 2 == 0] 來(lái)實(shí)現(xiàn)。輸出為 [1, 4, 11]。
在實(shí)際開(kāi)發(fā)中,適當(dāng)?shù)厥褂昧斜砭C合可以讓代碼更加簡(jiǎn)潔、易讀,降低出錯(cuò)的可能。
留一道作業(yè):
用一行 Python 代碼實(shí)現(xiàn):把1到100的整數(shù)里,能被2、3、5整除的數(shù)取出,以分號(hào)(;)分隔的形式輸出。
恭喜您在Python自學(xué)的道路上又堅(jiān)持了一天,這下你對(duì)Python中的列表綜合(List Comprehension)有沒(méi)有更近一步的了解了呢?好好做練習(xí)哦!
好啦!今天的分享到這里結(jié)束了,如果需要更多的技術(shù)性文章,可以訪問(wèn)馬哥教育官網(wǎng),每天都會(huì)有大量?jī)?yōu)質(zhì)內(nèi)容與大家分享!免責(zé)聲明:內(nèi)容和圖片源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。