8.11.6 如何创建迭代器:
对一个对象调用iter()就可以得到它的迭代器,它的语法如下:
iter(obj)
iter(func, sentinel )
如果你传递一个参数给iter(),它会检查你传递的是不是一个序列 如果是,那么很简单;
根据索引从0一直迭代到序列结束。
import time
myTuple=(123,'xyz','45.67')
print myTuple
print type(myTuple)
i=iter(myTuple)
print i
print type(i)
print i.next()
如果是传递两个参数给iter(),它会重组地调用func,知道迭代器的下个值等于sentinel
import time
import random
def fun1():
return random.randint(1,10)
a=iter(fun1,7)
print a.next()
print a.next()
print a.next()
print a.next()
print a.next()
C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/core/a7.py
6
5
Traceback (most recent call last):
File "C:/Users/TLCB/PycharmProjects/untitled/core/a7.py", line 8, in <module>
print a.next()
StopIteration