迭代是訪問集合元素的⼀種⽅式。 迭代器是⼀個可以記住遍歷的位置的對象。 迭代器物件從集合的第⼀個元素開始訪問, 直到所有的元素被訪問完結
束。 迭代器只能往前不會後退。
以直接作⽤於 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 如果被迭代的集合元素還...