python 可迭代对象和迭代器

1.什么是迭代器?

一句话来说:在python中,内部含有'iter'方法并且含有'next'方法的对象就是迭代器。

2.下列哪些对象是迭代器?

2.1 str,list,tup,dict,set,文件句柄

直接说答案,只有文件句柄对象是迭代器。只有其内部含有'iter'和'next'方法。

3.将可迭代对象转化成迭代器。

l = [1,2,3,4]
obj = l.__iter__()

#obj = iter(l)
#这时候,就可以调用obj的__next__()方法迭代输出内部元素。

4. for循环内部机制

for循环的循环对象一定要是可迭代对象,但并不意味着可迭代对象就可以取值,因为for循环的内部机制是:将可迭代对象转换成迭代器,然后利用next进行取值,最后利用异常处理机制处理StopLieration抛出的异常。下面用while模拟for的内部循环机制。

l = [1,2,3,4,5]
# 1. 将可迭代对象转化为迭代器.
obj = iter(l)
# 2. 利用while循环,next进行取值。
while 1:
    # 3. 利用异常处理终止循环。
    try:
        ptint(next(obj)
    expect StopIteration:
        break
posted @ 2019-07-20 17:03  why72  阅读(970)  评论(0编辑  收藏  举报