真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

Python迭代器與生成器怎么理解?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

萬(wàn)安ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

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)

 

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


當(dāng)前標(biāo)題:Python迭代器與生成器怎么理解
新聞來(lái)源:http://weahome.cn/article/jcdhpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部