python的迭代器 Python 迭代器

2021-10-11 12:26:38 字數 1239 閱讀 9007

概述迭代器是訪問集合元素的一種方式。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。

延遲計算或惰性求值 (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...