Python之路----------迭代器

來源:互聯網
上載者:User

標籤:[]   迭代   迭代器   dict   本質   pytho   except   odi   ict   

直接用作於for迴圈的資料類型有以下幾種:

1、集合類的資料類型:list tuple dict set str等

2、產生器generator,包括產生器和帶有yiled 的generator function

上面這些可以直接用於for迴圈的對象統稱為可迭代的對象Iterable。

1 #coding=utf-82 3 from collections import Iterable4 5 print(isinstance({}, Iterable))  #True6 print(isinstance([], Iterable))  #True7 print(isinstance(‘iterable‘, Iterable))  #True8 print(isinstance((), Iterable))  #True9 print(isinstance(100, Iterable))   #False

 

迭代器:可以被next()調用不斷返回下一個值的對象稱之為迭代器(Iterator)

1 from collections import Iterator2 3 print(isinstance({}, Iterator))  #False4 print(isinstance([], Iterator))  #False5 print(isinstance(‘iterable‘, Iterator))  #False6 print(isinstance((), Iterator))  #False7 print(isinstance((x for x in range(5)), Iterator))   #True8 9 #上述可知,列表、字典、字串、元祖等都不屬於迭代器(Iterator)

可迭代對象能否變成迭代器呢?通多內建方法iter()可以實現

1 from collections import Iterator2 3 print(isinstance(iter({}), Iterator))  #True4 print(isinstance(iter([]), Iterator))  #True5 print(isinstance(iter(‘iterable‘), Iterator))  #True6 print(isinstance(iter(()), Iterator))  #True7 print(isinstance((x for x in range(5)), Iterator))   #True

 

小結:

 

 

 

 

 1 #Python的For迴圈本質就是不斷通過調用next函數實現的例如下面兩段代碼 2  3 #代碼一 4  5 for x in range(10): 6     print(x) 7  8 #代碼二 9 it = iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])10 while True:11     try:12         x = next(it)13         print(x)14     except StopIteration:15         break16 #代碼一與代碼二等價

 

Python之路----------迭代器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.