日韩av片子_国产自在自线午夜精品视频在_使劲快高潮了国语对白在线_久久免费毛片大全_激情丁香综合_欧美成人精品欧美一级乱黄码

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

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

2020-07-09 17:30:14 | 來源:中培企業IT培訓網

迭代器協議意味著對象必須提供下一個next方法。執行此方法將返回迭代中的下一個項目,或導致stoplteration異常終止迭代。而生成器可以理解為一種數據類型,它可以自動實現迭代器協議(其他數據類型需要調用它們自己的內置__iter__方法),因此生成器是可迭代的對象。那么到底Python迭代器與生成器要怎么理解?在Python中,使用for... in ...來對list、tuple、set和dict數據類型并過濾掉所有數據。 如下:

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、迭代器

對字符串,列表,使用內置函數 iter 轉化為可迭代對象, 使用next關鍵字,可迭代對象每次取其中的一個值。如下面代碼:

nums = [1,2,3,4]

nums = iter(nums)

print(next(nums))

print(next(nums))

print(next(nums))

print(next(nums))

輸出

1

2

3

4

如果超出數據的長度,將會報錯 StopIteration

nums = [1,2,3,4]

nums = iter(nums)

print(next(nums))

print(next(nums))

print(next(nums))

print(next(nums))

print(next(nums)) # 超過數據長度,報錯 StopIteration

  2、生成器

使用生成器可以創建迭代器。生成器主要使用 yeild 關鍵字,每次調用 next 時會與yeild 定義的對應。例如:我們需要取 10~20之間的數據,步長為2,可以使用如下code

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

print(x)

但是如果步長設置為 0.5,如下代碼:

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

print(x)

將會報錯

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

這個時候,我們就可以使用 生成器來自定義一個函數

def drange(start,stop,step):

x = start

while x< stop:

yield x

x += step

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

print(x)

再舉一個例子:

給定一個字符串,倒敘排列:

def reverse(data):

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

yield data[x]

for x in reverse('gold'):

print(x)

看到這里,相信大家對于Python迭代器與生成器已經有了一定的理解。關于更多關于Python的干貨內容,盡在中培偉業,從零基礎到進階提升各個學習階段的學習內容都在等著你。

相關閱讀

主站蜘蛛池模板: 99久久久无码国产精品性 | 风起洛阳在线观看免费西瓜影视 | 国产在线码观看超清无码视频 | japan白嫩丰满少妇videoshd | 精品国产123区 | 中文字幕一区二区三区在线观看 | 91在线影视 | 亚洲精品一级 | 成年免费a级毛片免费看丶 在线日韩欧美 | 人人妻人人狠人人爽天天综合网 | 亚洲无码偷拍福利 | 亚洲最大无码AV网址 | 国精品**一区二区三区在线蜜桃 | 99久久亚洲综合精品成人网 | 欧美浓毛大泬毛茸茸 | 青娱乐色 | 亚洲高清免费 | 欧美三级不卡在线播放 | 99精品在线看 | 久久久亚洲欧洲日产国码二区 | 18禁老湿私人影院免费 | 日本一区二区免费视频 | 伊人春色在线播放 | 二区三区在线观看 | 亚洲精品国产三级 | 中国一级毛片在线视频 | 无码国产精品一区二区免费式芒果 | 欧美国产韩a在线视频 | 国产一级特黄特色毛片 | 国产又色又爽又刺激在线观看 | 日日爽天天 | 亚洲一区二区在线免费 | 成人夜色视频网站在线观看 | 欧美黑人性受xxxx精品 | 欧美日韩中文字幕在线观看 | 国产精品夜色一区二区三区 | 女人国产香蕉久久精品 | 欧美日韩精品免费观看视欧美高清免费大片 | 日日夜夜操操 | 新版天堂资源在线 | 99精品又大又爽又粗少妇毛片 |