python 列表推導式


現在我們有一個裝有名字的列表["tom", "jack", "bob", "nash"]
我們想要將列表中的名字首字母都大寫。按照之前學的知識,我們會用遍歷列表的方式
對列表中的每個名字進行首字母大寫的更改:

運行結果如下:

我們可以看到,我們獲得了一個新的列表,列表中的每個名字首字母都大寫。

那么,我們有沒有更為簡潔的方式實現這個功能呢?當然有,那就是列表推導式:
格式:

[表達式 for 變量  in 舊列表] or [表達式 for 變量  in  舊列表 if 條件 ]

我們用列表推導式來實現上面的功能:

運行結果如下:

我們可以看到,這樣的方式也獲得了一個新的列表,列表中的每個名字首字母大寫
了。

擴展1:列表推導式還可以加上條件判斷語句if
還是上面那個列表,我們獲得列表中名字大於等於4個字母的名字

我們在列表推導式的最后加上了一個判斷語句 if len(name) > =4 ,即遍歷出的名字大於或等於4個字母的,
放到name變量中組成一個新的列表。
運行結果如下:

我們可以看到,新列表中名字長度大於等於4個

 

擴展2:列表推導式還可以加上條件判斷語句if...else...

如上圖,salarys列表中有3個字典,每個字典包含了一個人的名字和薪水
通過判斷薪水是否大於10000,若大於則增加2%的薪水,若小於等於則增加5%的薪水
那么通過列表推導式,遍歷每個一個人(emploee),然后判斷emploee["salary"]是否大於10000,
條件為真則*(1+0.02),若為假則*(1+0.05)
運行結果如下圖:

我們獲得了一個新的列表,算出了每個人調整工資后的工資數
帶else的列表推導式格式:
[ 表達式a   if 條件判斷 f else 表達式 b  for 變量 in 列表]
若條件表達式if為真,則執行表達式a, 反之則執行條件表達式b

注意:列表推導式會得到一個新的列表,不會改變原來的列表

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM