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-10
python檢測(cè)遠(yuǎn)程端口是否打開(kāi)的方法
這篇文章主要介紹了python檢測(cè)遠(yuǎn)程端口是否打開(kāi)的方法,實(shí)例分析了Python基于socket檢測(cè)端口的技巧,需要的朋友可以參考下2015-03-03
pytorch中部分矩陣乘法和數(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模塊的接口則更直觀、更容易調(diào)用,想要了解datetime模塊的朋友可以參考一下2021-08-08
Python標(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-10
Pandas 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

