欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python編程中簡潔優(yōu)雅的推導(dǎo)式示例詳解

 更新時間:2021年11月01日 15:06:48   作者:曾親桂林  
這篇文章主要為大家介紹了python編程中簡潔優(yōu)雅的推導(dǎo)式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步

Python語言有一種獨特的推導(dǎo)式語法,相當(dāng)于語法糖的存在,可以幫助你在某些場合寫出較為精簡酷炫的代碼。但沒有它,也不會有太多影響。Python語言有幾種不同類型的推導(dǎo)式。

1. 列表推導(dǎo)式

列表推導(dǎo)式是一種快速生成列表的方式。其形式是用方括號括起來的一段語句,如下例子所示:

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

輸出

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

列表推導(dǎo)式要這么理解,首先執(zhí)行for循環(huán),對于每一個x,代入x*x中進行運算,將結(jié)果逐一添加到一個新列表內(nèi),循環(huán)結(jié)束,得到最終列表。它相當(dāng)于下面的代碼:

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

輸出

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

列表推導(dǎo)式為我們提供了一種在一行內(nèi)實現(xiàn)較為復(fù)雜邏輯的生成列表的方法。其核心語法是用中括號[]將生成邏輯封裝起來。

列表推導(dǎo)式有多重用法:

增加條件語句

lis = [x * x for x in range(1, 11) if x % 2 == 0]

輸出

[4, 16, 36, 64, 100]

多重循環(huán)

lis = [a + b for a in '123' for b in 'abc']

輸出

['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']

更多用法

dic = {"name": "mumu", "age": "18"}
a = [k+":"+v for k, v in dic.items()]
print(a) # ['name:mumu', 'age:18']

2. 字典推導(dǎo)式

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

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

輸出:

{2: 4, 4: 16, 6: 36}
<class 'dict'>

3. 集合推導(dǎo)式

a = {x for x in 'abracadabra' if x not in 'abc'}
print(a)
 
print(type(a))

輸出:

{'r', 'd'}
<class 'set'>
 

4. 元組推導(dǎo)式

沒有元組推導(dǎo)式

tup = (x for x in range(9))
print(tup)
print(type(tup))
<generator object <genexpr> at 0x0000013DB865AA40>
<class 'generator'>

要通過類似方法生成元組,需要顯式調(diào)用元組的類型轉(zhuǎn)換函數(shù)tuple(),如下所示:

tup = tuple(x for x in range(9))
print(tup)
print(type(tup))

輸出:

(0, 1, 2, 3, 4, 5, 6, 7, 8)
<class 'tuple'>

以上就是python編程中簡潔優(yōu)雅的推導(dǎo)式示例詳解的詳細(xì)內(nèi)容,更多關(guān)于python編程推導(dǎo)式的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python調(diào)用各大機器翻譯API的實現(xiàn)示例

    Python調(diào)用各大機器翻譯API的實現(xiàn)示例

    本文主要介紹了Python調(diào)用各大機器翻譯API的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 一文教你解決所有Python中文亂碼問題

    一文教你解決所有Python中文亂碼問題

    我們在編寫代碼時總是遇到各種中文亂碼的問題,所以本文就來為大家總結(jié)一下遇到的中文亂碼問題和對應(yīng)的解決方案,以及為什么會出現(xiàn)中文亂碼的問題,希望對大家有所幫助
    2023-12-12
  • python 把數(shù)據(jù) json格式輸出的實例代碼

    python 把數(shù)據(jù) json格式輸出的實例代碼

    下面小編就為大家?guī)硪黄猵ython 把數(shù)據(jù) json格式輸出的實例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Django分頁查詢并返回jsons數(shù)據(jù)(中文亂碼解決方法)

    Django分頁查詢并返回jsons數(shù)據(jù)(中文亂碼解決方法)

    這篇文章主要介紹了Django分頁查詢并返回jsons數(shù)據(jù)(中文亂碼解決方法),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • python實現(xiàn)的防DDoS腳本

    python實現(xiàn)的防DDoS腳本

    實現(xiàn)原理是,查詢netstat的連接數(shù),同IP超過一定連接的用iptables封禁一定時間,自動封禁,自動解封。
    2011-02-02
  • Python中利用函數(shù)裝飾器實現(xiàn)備忘功能

    Python中利用函數(shù)裝飾器實現(xiàn)備忘功能

    這篇文章主要介紹了Python中利用函數(shù)裝飾器實現(xiàn)備忘功能,同時還降到了利用裝飾器來檢查函數(shù)的遞歸、確保參數(shù)傳遞的正確,需要的朋友可以參考下
    2015-03-03
  • 安裝Pycharm2019以及配置anconda教程的方法步驟

    安裝Pycharm2019以及配置anconda教程的方法步驟

    這篇文章主要介紹了安裝Pycharm2019以及配置anconda教程的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python爬蟲實例_城市公交網(wǎng)絡(luò)站點數(shù)據(jù)的爬取方法

    Python爬蟲實例_城市公交網(wǎng)絡(luò)站點數(shù)據(jù)的爬取方法

    下面小編就為大家分享一篇Python爬蟲實例_城市公交網(wǎng)絡(luò)站點數(shù)據(jù)的爬取方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Python和OpenCV進行多尺度模板匹配實現(xiàn)

    Python和OpenCV進行多尺度模板匹配實現(xiàn)

    本文將實現(xiàn)如何將標(biāo)準(zhǔn)模板匹配擴展到多尺度,使其可以處理模板和輸入圖像大小不同的匹配。具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • pytorch 如何在GPU上訓(xùn)練

    pytorch 如何在GPU上訓(xùn)練

    這篇文章主要介紹了pytorch 如何在GPU上訓(xùn)練的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論