python的列表生成式,生成器和generator對(duì)象你了解嗎
列表生成式
可以使用列表生成式生成 列表元素。
例如:
列表還支持 if … else 與 for 循環(huán)組合的單行表達(dá)式進(jìn)行初始化。
>>> example = [i*i if i%2 == 0 else 2*i for i in range(1,11)] # 1~10中,奇數(shù)*2,偶數(shù)平方 >>> print ([i for i in range(1,11)]) # 對(duì)照組,1~10 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> example [2, 4, 6, 16, 10, 36, 14, 64, 18, 100]
當(dāng)然,if … else 本就支持單行寫(xiě)法。
>>> a = 100 >>> if a < 100: ... print("lt 100") ... elif a == 100: ... print("eq 100") ... else: ... print("gt 100") ... eq 100 >>> >>> # 如果將上述if...else寫(xiě)為單行式 ... print("lt 100") if a < 100 else print("eq 100") if a == 100 else print("gt 100") eq 100
列表表達(dá)式初始化 dict 或 set
同時(shí),我們也可以使用單行for初始化 set
還可以用于提取list的下標(biāo)與元素,需要注意的是,如果使用 :
的key:value的形式,最終結(jié)果是dict。
generator對(duì)象
探索,是否可以類(lèi)比上述,生成tuple。當(dāng)我這么做的時(shí)候,結(jié)果獲得一個(gè)generator類(lèi)型。
簡(jiǎn)單來(lái)說(shuō)返回的generator是一個(gè)可迭代對(duì)象,因此我們嘗試使用 for 遍歷它的時(shí)候,是可以遍歷得到其所有數(shù)據(jù)的。
而這里的 可迭代對(duì)象(Iterable)主要指可以直接作用于for循環(huán)的對(duì)象(for循環(huán)本質(zhì)上就是通過(guò)不斷調(diào)用next()函數(shù)進(jìn)行迭代)。
包括內(nèi)置的(list
、tuple
、dict
、set
、str
等)和生成器(generator
)。
生成generator對(duì)象
主要有兩種方法:
- 第一種使用
()
包裹列表生成式 - 第二種,使用 yield 標(biāo)記
示例:演示yield
這里可以通過(guò) next() 獲取內(nèi)部元素
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
關(guān)于windos10環(huán)境下編譯python3版pjsua庫(kù)的問(wèn)題
pjsua默認(rèn)綁定的python版本是python 2.4,使用起來(lái)有諸多限制,希望可以使用python3調(diào)用pjsua的庫(kù)實(shí)現(xiàn)軟電話(huà)的基礎(chǔ)功能。這篇文章主要介紹了windos10環(huán)境下編譯python3版pjsua庫(kù),需要的朋友可以參考下2021-10-10python檢測(cè)遠(yuǎn)程端口是否打開(kāi)的方法
這篇文章主要介紹了python檢測(cè)遠(yuǎn)程端口是否打開(kāi)的方法,實(shí)例分析了Python基于socket檢測(cè)端口的技巧,需要的朋友可以參考下2015-03-03pytorch中部分矩陣乘法和數(shù)組乘法的小結(jié)
本文主要介紹了pytorch中部分矩陣乘法和數(shù)組乘法的小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03一篇文章帶你了解python標(biāo)準(zhǔn)庫(kù)--datetime模塊
這篇文章主要為大家介紹了python中的datetime模塊,datetime模塊的接口則更直觀(guān)、更容易調(diào)用,想要了解datetime模塊的朋友可以參考一下2021-08-08Python標(biāo)準(zhǔn)庫(kù)re的使用舉例(正則化匹配)
正則表達(dá)式re是內(nèi)置函數(shù),通過(guò)一定的匹配規(guī)則獲取指定的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Python標(biāo)準(zhǔn)庫(kù)re的使用舉例,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10Pandas DataFrame數(shù)據(jù)的更改、插入新增的列和行的方法
這篇文章主要介紹了Pandas DataFrame數(shù)據(jù)的更改、插入新增的列和行的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06解決pytorch讀取自制數(shù)據(jù)集出現(xiàn)過(guò)的問(wèn)題
這篇文章主要介紹了解決pytorch讀取自制數(shù)據(jù)集出現(xiàn)過(guò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05