python 迭代器

首先要理解相关概念

迭代:按某种顺序逐个访问集合的每一项

可迭代对象:能够被迭代的对象,例如列表,字符串,元组,字典

                      判断是否为可迭代对象,以字符串为例:

str = "abc"

# 1.可以for in
for i in str:
    print(i)      // a b c

# 2.collections.Iterable
import collections
print(isinstance(str, collections.Iterable))   // True

  迭代器:从第一个元素开始,通过下一个()函数往后进行遍历

                 判断是否为迭代器的依据,以字符串为例

str = "abc"

# 1. 可以用next()则是迭代器
    iterator.next()

# 2. collections.Iterator判断

import collections
i = iter(str)          //iter可以将可迭代对象转换为迭代器
print(i)               // 即迭代器
print(isinstance(str,collections.Iterator))   //False
print(isinstance(i,collections.Iterator))     //True

由此可知 str为可迭代对象,但不是迭代器

注意:迭代器可以可迭代对象,可以for in 

举个笼统但不完全正确的例子:一排小朋友排好,小朋友可以一个个遍历,所以整排是可迭代对象,然后小朋友们要一个个进去医务室进行体检,每执行一次next(),就有一个小朋友进入,医务室相当于迭代器。

迭代器的作用:

1.迭代器只有迭代到某个元素时才会处理该元素,没迭代到则不存在,迭代过的就不存在,所以可以提高性能和内存

2.由于可迭代对象访问方式可能不同,将可迭代对象转化为迭代器之后,可以统一访问

注意:当迭代器迭代完,不能继续迭代,若要迭代则要重新创建迭代器

 

 

你可能感兴趣的:(Python)