Python迭代器簡介

2021-08-07 04:49:47 字數 2458 閱讀 1101

迭代是訪問集合元素的⼀種⽅式。 迭代器是⼀個可以記住遍歷的位置的對

象。 迭代器物件從集合的第⼀個元素開始訪問, 直到所有的元素被訪問完結

束。 迭代器只能往前不會後退。

以直接作⽤於 for 迴圈的資料型別有以下⼏種:

⼀類是集合資料型別, 如 list 、 tuple 、 dict 、 set 、 str 等;

⼀類是 generator , 包括⽣成器和帶 yield 的generator function。

這些可以直接作⽤於 for 迴圈的物件統稱為可迭代物件: iterable

print(isinstance(, iterable))

print(isinstance((), iterable))

print(isinstance({}, iterable))

print(isinstance('abc123', iterable))

結果為:

true

true

true

true

可以被next()函式調⽤並不斷返回下⼀個值的物件稱為迭代器: iterator。

可以使⽤ isinstance() 判斷⼀個物件是否是 iterator 物件

print(isinstance(, iterator))

print(isinstance((), iterator))

print(isinstance({}, iterator))

print(isinstance('abc123', iterator))

結果為:

false

false

false

false

⽣成器都是 iterator 物件, 但 list 、 dict 、 str 雖然是 iterable , 卻不是

iterator 。

把 list 、 dict 、 str 等 iterable 變成 iterator 可以使⽤ iter() 函式

list = [1, 2, 3, 4, 5, 6]

i = iter(list)

附完整**:

from collections import iterable

from collections import iterator

"""迭代是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷位置的物件。

迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問結束。

iterable: 可迭代物件

01. 集合資料型別 list tuple dict set str

02. generator,包括生成器和帶yield的generator function

這些可以直接作用於for迴圈的物件統稱為可迭代物件

itertor:迭代器

01. 可以被next()函式呼叫,並不斷返回下乙個值的物件稱之為迭代器

02. iter()

生成器都是iterator物件,但是list dict str雖然是iterable,卻不是iterator

可以使用iter()函式將iterable變成iterator

總結: a.凡是可作用於for迴圈的物件都是iterable型別

b.凡是可作用於next()函式的物件都是iterator型別

c.集合資料型別如list dici str等雖然是iterable,但卻不是iterator,不過可以通過iter()函式進行轉換得到乙個iterator物件

"""# 判斷是否是可迭代物件

print(isinstance(, iterable))

print(isinstance((), iterable))

print(isinstance({}, iterable))

print(isinstance('abc123', iterable))

# 判斷是否是迭代器物件

print(isinstance(, iterator))

print(isinstance((), iterator))

print(isinstance({}, iterator))

print(isinstance('abc123', iterator))

# 通過iter()函式將iterable物件轉換成iterator

list = [1, 2, 3, 4, 5, 6]

i = iter(list)

print(next(i))

print(next(i))

print(next(i))

python迭代器簡介

迭代器簡要筆記內容及其示例 usr bin python coding utf8 迭代器 重複的過程稱為迭代,每次重複即一次迭代,並且每次迭代的結果是下一次迭代的初始值 while true 只滿足重複,因而不是迭代 print 下面才為迭代 l 1,2,3 count 0 while count ...

迭代器簡介

迭代器提供了比下標操作更通用的遍歷容器雷元素的方法。其對所有的容器都適用,現代c 程式更加傾向於適用迭代器而不是下標操作。迭代器測試 vector iterator begin v3.begin 指向容器的第乙個元素 vector iterator end v3.end z指向容器末端元素的下乙個 ...

迭代器簡介

迭代器iterator介面同collection map,也是j a集合框架的成員,不同於兩者的是其本身並非用來盛裝其他物件,而是用來遍歷訪問collection集合中的元素。map介面並沒有實現iterator iterator主要有以下方法 boolean hasnext 如果被迭代的集合元素還...