自學Python教程【第六十四節】列表綜合
歡迎大家來到自學Python教程教室,上一講我們分享了pickle的相關內容,今天來講講 Python 里一個我非常喜歡的特性--列表綜合(List Comprehension)。所謂列表綜合,就是通過一個已有的列表生成一個新的列表。
直接看例子:
假設有一個由數字組成的 list,現在需要把其中的偶數項取出來,組成一個新的 list。一種比較“正常”的方法是:
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]
此方法通過循環來遍歷列表,對其中的每一個元素進行判斷,若模取2的結果為0則添加至新列表中。
使用列表綜合實現同樣的效果:
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] 會把 list_1 中的每一個元素都取出來,構成一個新的列表。
如果需要對其中的元素進行篩選,就在后面加上判斷條件 if。所以 [i for i in list_1 if i % 2 == 0] 就是把 list_1 中滿足 i % 2 == 0 的元素取出來組成新列表。
進一步的,在構建新列表時,還可以對于取出的元素做操作。比如,對于原列表中的偶數項,取出后要除以2,則可以通過 [i / 2 for i in list_1 if i % 2 == 0] 來實現。輸出為 [1, 4, 11]。
在實際開發中,適當地使用列表綜合可以讓代碼更加簡潔、易讀,降低出錯的可能。
留一道作業:
用一行 Python 代碼實現:把1到100的整數里,能被2、3、5整除的數取出,以分號(;)分隔的形式輸出。
恭喜您在Python自學的道路上又堅持了一天,這下你對Python中的列表綜合(List Comprehension)有沒有更近一步的了解了呢?好好做練習哦!
好啦!今天的分享到這里結束了,如果需要更多的技術性文章,可以訪問馬哥教育官網,每天都會有大量優質內容與大家分享!免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。