在Python中,迭代器對(duì)象實(shí)現(xiàn)了iter()
和next()
兩種方法。
String,List或Tuple對(duì)象可用于創(chuàng)建Iterator。
----------------------------------------------------
list = [1,2,3,4]
it = iter(list) # this builds an iterator object
print (next(it)) # 輸出下一個(gè)元素 1
for x in it: #完整輸出
print (x, end=" ")#2 3 4
-----------------------------------------------------
list = [1,2,3,4]
it = iter(list) # this builds an iterator object
#or using next() function
while True:
try:
print (next(it))
except StopIteration:
sys.exit() #you have to import sys module for this
---------------------------------------------------------------
Iterable--(可迭代對(duì)象)
直接作用于for循環(huán):
list、tuple、dict、set、str(集合數(shù)據(jù)類型)
generator--(生成器)和帶yield的generator function
生成器都是Iterator對(duì)象
generator--(生成器)
Iterator--(迭代器)
Iterable--(可迭代對(duì)象)list、dict、str
iter()函數(shù)--變成Iterator
isinstance()判斷--Iterable(可迭代對(duì)象)--Iterator對(duì)象
next()函數(shù)
StopIteration錯(cuò)誤
Iterator對(duì)象--表示的是一個(gè)無限大數(shù)據(jù)流--看做有序序列(全體自然數(shù))
generator--(生成器)
可以作用于for循環(huán)
還可以被next()函數(shù)不斷調(diào)用并返回下一個(gè)值
最后拋出StopIteration錯(cuò)誤,無法繼續(xù)返回下一個(gè)值了
Iterator--(迭代器)
可以被next()函數(shù)調(diào)用
不斷返回下一個(gè)值的對(duì)象
isinstance()判斷
>>> from collections import Iterator
>>> isinstance((x for x in range(10)), Iterator)
True
>>> isinstance([], Iterator)
False
>>> isinstance({}, Iterator)
False
>>> isinstance('abc', Iterator)
False
iter()函
>>> isinstance(iter([]), Iterator)
True
>>> isinstance(iter('abc'), Iterator)
True
分享知識(shí),分享快樂!希望中國(guó)站在編程之巔!
----融水公子
公眾微信號(hào):rsgz520
360圖書館館號(hào):rsgz002.360doc.com