Python的列表推導式__Python

來源:互聯網
上載者:User
列表推導式是Python基礎,好用,而又非常重要的功能,也是最受歡迎的Python特性之一,可以說掌握它是成為合格Python程式員的基本標準。本質上可以把列表推導式理解成一種集合了變換和篩選功能的函數,通過這個函數把一個列錶轉換成另一個列表。注意是另一個新列表,原列表保持不變。 看樣本: (1)對列表中的每項元素進行立方運算(變換功能)
 
 
 
 
 
 
 
 
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = [x ** 3 for x in a if x % 2 == 0]
print(b)
[8, 64, 216, 512, 1000]
       從結果上可以看出有篩選條件的話是先篩選再變換,即先篩掉不滿足條件的元素,再進行變換運算。可以同時加多個篩選條件,如對大於5的且是偶數的元素進行立方運算,樣本如下:
 
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = [x ** 3 for x in a if x % 2 == 0 if x > 5]
print(b)
[216, 512, 1000]
(3)與zip結合        將a,b兩個列表中相對應得值組合起來,形成一個新列表。例如包含x座標的列表與y座標的列表形成相對應的點座標[x, y]列表。
 
a = [-1, -2, -3, -4, -5, -6, -7, -8, -9, -10]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
xy = [[x, y] for x, y in zip(a, b)]
print(xy)
[[-1, 1], [-2, 2], [-3, 3], [-4, 4], [-5, 5], [-6, 6], [-7, 7], [-8, 8], [-9, 9], [-10, 10]]
(4)支援多層for迴圈        將一個嵌套列錶轉換成一個一維列表。
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = [j for i in a for j in i]
print(b)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
       Python中還有字典推導式、集合推導式等,與列表推導式使用方式大致相同。        列表推導式的使用非常廣泛,從實際使用經驗來看,列表推導式使用的頻率是非常高的,也是相當好用的。而對於列表推導式的多層for迴圈,尤其是3層以上的或帶複雜篩選條件的,犧牲了較多的可讀性,直接用多個普通for迴圈方式實現就可以了,畢竟方便的實現功能是第一位的,多幾行代碼就多幾行吧。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.