成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python迭代器和生成器區(qū)別有哪些

小編給大家分享一下python迭代器和生成器區(qū)別有哪些,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司,提供網(wǎng)站設(shè)計、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進行網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

迭代器是一個更抽象的概念,任何對象,如果它的類有 next 方法和 iter 方法返回自己本身,對于 string、list、dict、tuple 等這類容器對象,使用 for 循環(huán)遍歷是很方便的。

python迭代器和生成器區(qū)別有哪些

在后臺 for 語句對容器對象調(diào)用 iter()函數(shù),iter()是 python 的內(nèi)置函數(shù)。iter()會返回一個定義了 next()方法的迭代器對象,它在容器中逐個訪問容器內(nèi)元素,next() 也是 python 的內(nèi)置函數(shù)。在沒有后續(xù)元素時,next()會拋出一個 StopIteration 異常。

# 隨便定義一個list
listArray=[1,2,3]
# 使用iter()函數(shù)
iterName=iter(listArray)
print(iterName)

生成器(Generator)是創(chuàng)建迭代器的簡單而強大的工具。它們寫起來就像是正規(guī)的函數(shù),只是在需要返回數(shù)據(jù)的時候使用 yield 語句。每次 next()被調(diào)用時,生成器會返回它脫離的位置(它記憶語句最后一次執(zhí)行的位置和所有的數(shù)據(jù)值)

# 菲波那切數(shù)列
def Fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        yield b
        a, b = b, a + b
        n = n + 1
    return '親!沒有數(shù)據(jù)了...'
# 調(diào)用方法,生成出10個數(shù)來
f=Fib(10)
# 使用一個循環(huán)捕獲最后return 返回的值,保存在異常StopIteration的value中
while  True:
    try:
        x=next(f)
        print("f:",x)
    except StopIteration as e:
        print("生成器最后的返回值是:",e.value)
        break

區(qū)別:

生成器能做到迭代器能做的所有事,而且因為自動創(chuàng)建了 iter()和 next()方法,生成器顯得特別簡潔,而且生成器也是高效的,使用生成器表達式取代列表解析可以同時節(jié)省內(nèi)存。除了創(chuàng)建和保存程序狀態(tài)的自動方法,當發(fā)生器終結(jié)時,還會自動拋出 StopIteration 異常。

看完了這篇文章,相信你對python迭代器和生成器區(qū)別有哪些有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站欄目:python迭代器和生成器區(qū)別有哪些
分享網(wǎng)址:http://jinyejixie.com/article16/psgogg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、App開發(fā)、軟件開發(fā)、做網(wǎng)站域名注冊、移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
岚皋县| 威海市| 项城市| 赤峰市| 兴宁市| 奉节县| 兴仁县| 兴宁市| 九江县| 舞钢市| 朝阳县| 竹北市| 蓝田县| 大新县| 肥城市| 吉木萨尔县| 那坡县| 合肥市| 西藏| 河南省| 财经| 沛县| 长阳| 南京市| 文山县| 巫山县| 镇巴县| 枣强县| 长治县| 奉化市| 滨海县| 安溪县| 夏津县| 镇江市| 安图县| 三河市| 馆陶县| 金秀| 巴南区| 衡山县| 丰镇市|