亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)/技術(shù)文章
文章詳情頁(yè)

python 生成器需注意的小問題

瀏覽:3日期:2022-07-09 13:47:32

在Python中,生成器和函數(shù)很像,都是在運(yùn)行的過程中才會(huì)去確定各種變量的值,所以在很多情況下,會(huì)導(dǎo)致各種各樣的問題。

def generator_test1(): # 0...9 generator x = (i for i in range(10)) # 5..9 generator x_filter = filter(lambda y: y >= 5, x) # first use the x L = list(x) print('L, x', L) # then use x_filter l = list(x_filter) print('l, x_filter', l) if __name__ == '__main__': generator_test1()

輸出結(jié)果為:

L, x [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]l, x_filter []

上述代碼中,x_filter是基于生成器x構(gòu)建的生成器,但是由于x在x_filter使用之前先被用掉了,所以在使用x_filter的時(shí)候,才去獲取x的值,而此時(shí)x已經(jīng)用完了,最終導(dǎo)致x_filter轉(zhuǎn)化成的列表是空的。

def generator_test2(): x = (i for i in range(10)) for i in range(10): x = (j + i for j in x) L = list(x) print('L, x', L) if __name__ == '__main__': generator_test2()

輸出結(jié)果:

L, x [90, 91, 92, 93, 94, 95, 96, 97, 98, 99] 

上述代碼中,每次循環(huán)都基于原先的生成器構(gòu)建一個(gè)新的生成器,由于并未使用,所以生成器x中的i并沒有被賦值。在后面轉(zhuǎn)化成列表的時(shí)候才去獲取i的值,而此時(shí)由于i為9,所以所有的生成器x的i都為9,原始的x是0到9的生成器,接下來的10個(gè)生成器每個(gè)都在原始值上加9,導(dǎo)致每個(gè)值都增大了90。下面是此例的一個(gè)變體:

def generator_test3(): x = (i for i in range(10)) for i in range(10): x = (j + i for j in x) i = 20 L = list(x) print('L, x', L) if __name__ == '__main__': generator_test3()

輸出結(jié)果:

L, x [200, 201, 202, 203, 204, 205, 206, 207, 208, 209]

以上就是python 生成器需注意的小問題的詳細(xì)內(nèi)容,更多關(guān)于python 生成器的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 中文xxx视频| 国产一区二区三区国产精品 | 成人午夜大片免费视频77777 | 国产精品嫩草影院视频 | 欧美高清一级毛片免费视 | 亚洲精美视频 | 亚洲欧美日韩精品在线 | 女毛片| 国产精品一区二区手机看片 | 久久精品视频久久 | 可以直接看的av网址站 | 伊人影院在线观看视频 | 麻豆传媒在线免费 | 九九精品99久久久香蕉 | 久久久这里有精品999 | 亚洲欧美日韩综合精品网 | 久久国产视屏 | 色片在线播放 | 久久精品成人欧美大片免费 | 欧美日韩亚洲高清不卡一区二区三区 | 欧美成人福利视频 | 黄色在线观看视频网站 | aaa网站| 国自产在线精品免费 | 最新avtom永久地址免费 | 亚洲涩涩| 免费特级毛片 | 毛片免费看 | 国产免费一级高清淫曰本片 | 欧美三级在线观看播放 | 9191国语精品高清在线最新 | 亚洲国产成人久久精品图片 | 亚洲欧洲视频在线观看 | 丝袜亚洲精品中文字幕一区 | 爱爱免费播放视频在线观看 | 亚洲视频区 | 亚洲精品国产乱码在线播 | 国产日韩久久 | 三级三级三级网站网址 | 亚洲精品一级一区二区三区 | 国产日韩欧美视频在线观看 |