python--推導式

來源:互聯網
上載者:User

標籤:for迴圈   注意   使用   dad   大括弧   影響   bcd   集合   存在   

Python語言有一種獨特的推導式文法,相當於文法糖的存在,可以幫你在某些場合寫出比較精簡酷炫的代碼。但沒有它,也不會有太多的影響。Python語言有幾種不同類型的推導式,下面逐一介紹:

1. 列表推導式

列表推導式是一種快速產生列表的方式。其形式是用方括弧括起來的一段語句,如下例子所示:

lis = [x * x for x in range(1, 10)]print(lis)

結果:

[1, 4, 9, 16, 25, 36, 49, 64, 81]

列表推導式要這麼理解,首先執行for迴圈,對於每一個x,代入x*x中進行運算,將運算結果逐一添加到一個新列表內,迴圈結束,得到最終列表。它相當於下面的代碼:

lis = []for i in range(1, 10):    lis.append(i*i)print(lis)

列表推導式為我們提供了一種在一行內實現較為複雜邏輯的產生列表的方法。其核心文法是用中括弧[]將產生邏輯封裝起來。

列表推導式有多種花樣用法:

  增加條件陳述式

  通過在後面添加if子句,對x進行過濾。

lis2 = [a + b for a in ‘123‘ if int(a) == 2 for b in ‘abcd‘]print(lis2)

結果:

[4, 16, 36, 64, 100]

  

  多重迴圈

  

lis2 = [a + b for a in ‘123‘ if int(a) == 2 for b in ‘abcd‘]print(lis2)

結果:

[‘2a‘, ‘2b‘, ‘2c‘, ‘2d‘]

 

2. 字典推導式

既然使用中括弧[]可以編寫列表推導式,那麼使用大括弧呢?你猜對了!使用大括弧{}可以製造字典推導式!

注意x: x**2的寫法,中間的冒號,表示左邊的是key右邊的是value  

dic = {x: x**2 for x in (2, 4, 6)}print(dic)

結果:

{2: 4, 4: 16, 6: 36}

 

3. 集合推導式

大括弧除了能用作字典推導式,還可以用作集合推導式,兩者僅僅在細微處有差別。

#集合推導式a = {x for x in ‘abcwtrtfdad‘ if x not in ‘abc‘}print(a)

結果:

{‘r‘, ‘d‘, ‘w‘, ‘f‘, ‘t‘}

 

python--推導式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.