性少妇vide0seⅹfree_国产剧情视频在线观看_日日碰夜夜爽_九九这里只有精品视频_性free毛茸茸偷窥videos_国产v亚洲

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁(yè) > IT資訊 > 軟件研發(fā) > Python迭代器與生成器要怎么理解?

Python迭代器與生成器要怎么理解?

2020-07-09 17:30:14 | 來(lái)源:中培企業(yè)IT培訓(xùn)網(wǎng)

迭代器協(xié)議意味著對(duì)象必須提供下一個(gè)next方法。執(zhí)行此方法將返回迭代中的下一個(gè)項(xiàng)目,或?qū)е聅toplteration異常終止迭代。而生成器可以理解為一種數(shù)據(jù)類型,它可以自動(dòng)實(shí)現(xiàn)迭代器協(xié)議(其他數(shù)據(jù)類型需要調(diào)用它們自己的內(nèi)置__iter__方法),因此生成器是可迭代的對(duì)象。那么到底Python迭代器與生成器要怎么理解?在Python中,使用for... in ...來(lái)對(duì)list、tuple、set和dict數(shù)據(jù)類型并過(guò)濾掉所有數(shù)據(jù)。 如下:

for element in [1, 2, 3]:

print(element)

for element in (1, 2, 3):

print(element)

for key in {'one':1, 'two':2}:

print(key)

for char in "123":

print(char)

for line in open("myfile.txt"):

print(line, end='')

  1、迭代器

對(duì)字符串,列表,使用內(nèi)置函數(shù) iter 轉(zhuǎn)化為可迭代對(duì)象, 使用next關(guān)鍵字,可迭代對(duì)象每次取其中的一個(gè)值。如下面代碼:

nums = [1,2,3,4]

nums = iter(nums)

print(next(nums))

print(next(nums))

print(next(nums))

print(next(nums))

輸出

1

2

3

4

如果超出數(shù)據(jù)的長(zhǎng)度,將會(huì)報(bào)錯(cuò) StopIteration

nums = [1,2,3,4]

nums = iter(nums)

print(next(nums))

print(next(nums))

print(next(nums))

print(next(nums))

print(next(nums)) # 超過(guò)數(shù)據(jù)長(zhǎng)度,報(bào)錯(cuò) StopIteration

  2、生成器

使用生成器可以創(chuàng)建迭代器。生成器主要使用 yeild 關(guān)鍵字,每次調(diào)用 next 時(shí)會(huì)與yeild 定義的對(duì)應(yīng)。例如:我們需要取 10~20之間的數(shù)據(jù),步長(zhǎng)為2,可以使用如下code

for x in range(10,20,2):

print(x)

但是如果步長(zhǎng)設(shè)置為 0.5,如下代碼:

for x in range(10,20,0.5):

print(x)

將會(huì)報(bào)錯(cuò)

TypeError: 'float' object cannot be interpreted as an integer

這個(gè)時(shí)候,我們就可以使用 生成器來(lái)自定義一個(gè)函數(shù)

def drange(start,stop,step):

x = start

while x< stop:

yield x

x += step

for x in drange(10,20,0.5):

print(x)

再舉一個(gè)例子:

給定一個(gè)字符串,倒敘排列:

def reverse(data):

for x in range(len(data)-1,-1,-1):

yield data[x]

for x in reverse('gold'):

print(x)

看到這里,相信大家對(duì)于Python迭代器與生成器已經(jīng)有了一定的理解。關(guān)于更多關(guān)于Python的干貨內(nèi)容,盡在中培偉業(yè),從零基礎(chǔ)到進(jìn)階提升各個(gè)學(xué)習(xí)階段的學(xué)習(xí)內(nèi)容都在等著你。

標(biāo)簽: Python迭代器 Python生成器

相關(guān)閱讀

主站蜘蛛池模板: www.色小妹.com | 日本福利视频网 | 免费观看又色又爽又黄的韩国 | 亚洲天堂热 | 在线免费观看色视频 | 美女18免费 | 日本三级欧美三级人妇在线63 | 最近中文字幕大全中文字幕免费 | 日本人成网站18禁止久久影院 | 一区二区三区四区在线免费观看 | 精品日韩欧美一区二区在线播放 | 惊弦45集免费观看 | 国产精品欧美亚洲制服 | 国产黄a三级三级三级看三级男男 | 在线精品在线 | 成年人网站在线免费观看 | 最新日韩精品在线观看 | 中文字幕亚洲精品视频 | 正在播放一区 | 日韩精品视频国产 | 伦理第一页 | 欧美日本午夜一区二区 | 欧美亚洲日本 | free朝鲜嫩白的sex性 | 男男激情网站 | 久久久岛国 | 国产午夜日韩不卡一区 | 久久精品国产99国产精2020新增功能 | 国产午夜无码视频免费网站 | 亚洲欧洲日韩一区二区三区 | 性色AV无码一区二区三区人妻 | 男生让女性深夜下面玩的玩具 | 亚洲国产综合精品中久 | 夜夜躁日日躁 | 免费毛片在线播放免费 | free性xxxxⅹo | 亚洲av国产午夜精品一区二区 | 国产真人无码作爱免 | 日日夜夜很很操 | av边做边流奶水无码免费 | 国产香蕉国产精品偷在线 |