Python學習筆記——迭代器

來源:互聯網
上載者:User

標籤:

什麼是迭代器:

  它為類序列對象提供了一個類序列的介面。它們是一組資料結構,你可以利用它們的索引從0開始一直“迭代”到序列的最後一個條目。

 

 

 

如何用迭代器:

  (1)序列中的使用

>>>myTuple = (1, 2, 3)>>>i = iter(myTuple)>>>i.next()1>>>i.next()2>>>i.next()3>>>i.next()Traceback (most recent call last):File "", line 6,  in <module>    i.next()StopIteration

  (2)字典中的使用

字典的迭代器會遍曆它的鍵(key)。語句for eachKey in myDict.keys()可以縮寫為for eachKey in myDict

>>>dict1={(‘Poe‘,‘author‘):(1809,1849,1976),...(‘Gaudi‘,‘architect‘):(1852,1906,1987)}>>>for eachdict in dict1:...    print ‘Name: %s\tOccupation: %s‘ % eachdict...    print ‘   Birth: %s\tDeath: %s\t Album: %s\n‘ ...    % dict1[eachdict]Name: poe     Occupation:author   Birth:1809 Death:1849      Album:1976   Name: Gaudi   Occupation:architect   Birth:1852 Death:1906      Album:1987       

另外,Python還引進了三個新的內建字典方法來定義迭代:myDict.iterkeys()(通過鍵迭代),myDict.itervalues()(通過值迭代)及myDict.iteritems()(通過鍵-值對來迭代)。

  (3)檔案中的使用

檔案對象產生的迭代器會自動調用readline()方法。這樣,迴圈就能訪問文字檔的所有行。

>>>myFile = open(‘C:\\Users\\tyy\\Desktop\\xxx.txt‘)>>>for eachLine in myFile:           print eachLine,aaaabbbbcccc>>>myFile.close()

3.如何建立迭代器

  對一個對象調用iter()就可以得到它的迭代器。它的文法如下:

iter(obj)

iter(func, sentinel)

如果你傳遞一個值給iter(),它會檢查你傳遞的是不是一個序列,如果是,則根據索引從0一直迭代到序列結束。

如果你傳遞了兩個值給iter(),它會重複地調用func,直到迭代器的下一個值等於sentinel。

 

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.