概述迭代器是訪問集合元素的一種方式。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。
延遲計算或惰性求值 (lazy evaluation)
迭代器不要求你事先準備好整個迭代過程中所有的元素。僅僅是在迭代至某個元素時才計算該元素,而在這之前或之後,元素可以不存在或者被銷毀。這個特點使得它特別適合用於遍歷一些巨大的或是無限的集合。
可迭代物件
迭代器提供了乙個統一的訪問集合的介面。只要是實現了__iter__()或__getitem__()方法的物件,就可以使用迭代器進行訪問。
序列:字串、列表、元組
非序列:字典、檔案
自定義類:使用者自定義的類實現了__iter__()或__getitem__()方法的物件
建立迭代器物件
使用內建的工廠函式iter(iterable)可以獲取迭代器物件:
語法:iter(collection) -> iterator
iter(callable,sentinel) -> iterator
說明:get an iterator from an object.
in the first form, the argument must supply its own iterator, or be a sequence.
in the second form, the callable is called until it returns the sentinel.
例項展示:
1 使用物件內建的__iter__()方法生成迭代器
2 >>>l1 = [1,2,3,4,5,6]
3 >>>i1 = l1.__iter__()
4 >>>printi1
5 6 >>>i1.next()
7 18 >>>i1.next()
9 210 >>>i1.next()
11 3
1 使用內建工廠函式生成迭代器
2 >>> l1 = [1,2,3,4,5,6]
3 >>> i2 =iter(l1)
4 >>> printi2
5 6 >>>i2.next()
7 18 >>>i2.next()
9 210 >>>i2.next()
11 3
說明:for迴圈可用於任何可迭代物件
for迴圈開始時,會通過迭代協議傳輸給iter()內建函式,從而能夠從迭代物件中獲得乙個迭代器,返回的物件含有需要的next()方法。
python中迭代器的基本方法 Python迭代器
迭代器是可以迭代的物件。在本教程中,您將了解迭代器的工作原理,以及如何使用 iter 和 next 方法構建自己的迭代器。迭代器在python中無處不在。它們優雅地實現在迴圈,推導,生成器等中,但隱藏在明顯的視覺中。python中的迭代器只是乙個可以迭代的物件。乙個將一次返回資料的物件或乙個元素。從...
python的迭代器 Python 迭代器
迭代器 迭代是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。可迭代物件 以直接作用於 for 迴圈的資料型別有以下幾種 一類是集合資料型別,如 list tuple dict set str 等...
python的迭代器 python 迭代器
在介紹迭代器之前,先說明下迭代的概念 迭代 通過for迴圈遍歷物件的每乙個元素的過程。python的for語法功能非常強大,可以遍歷任何可迭代的物件。在python中,list tuple string dict set bytes都是可以迭代的資料型別。可以通過collections模組的iter...