淺談python迭代器,淺談python代器

來源:互聯網
上載者:User

淺談python迭代器,淺談python代器

1、yield,將函數變為 generator (產生器)

例如:斐波那契數列

def fib(num):  a, b, c = 1, 0, 1      while a <= num:    yield c    b, c = c, b + c    a += 1for n in fib(10):  print(n, end=' ')# 1 1 2 3 5 8 13 21 34 55

2、Iterable

所有可以使用for迴圈的對象,統稱為 Iterable (可迭代)

from collections import Iterable, Iteratorprint(isinstance(fib(10), Iterable))print(isinstance(range(10), Iterable))# True# True

3、Iterator

可以使用next() <__next__()> 函數調用並且不斷返回下一個值的對象成為 Iterator (迭代器),表示一個惰性計算的序列。

list, dict, str是Iterable,不是Iterator:

from collections import Iteratorprint(isinstance(list(), Iterator))# False

但是可以通過iter()函數將其變為Iterator:

print(isinstance(iter(list()), Iterator))# True

總結

以上就是本文關於淺談python迭代器的全部內容,希望對大家有所協助。感興趣的朋友可以繼續參閱本站:python好玩的項目—色情圖片識別代碼分享、Python實現一個簡單的驗證碼程式、Python演算法輸出1-9數組形成的結果為100的所有運算式等,有什麼問題可以隨時留言,小編會及時回複大家的。感謝朋友們對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.