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