有一个概念我们一直在用,但我们却从来没有认真的去深入剖析它-这个概念就是迭代。
迭代器
迭代的意思类似于循环,每一次重复的过程被称为一次迭代的过程,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。提供迭代方法的容器称为迭代器,通常接触的迭代器有序列、列表、元组、字符串还有字典也是迭代器,都支持迭代的操作。
Python提供了两个BIF
- iter()
- next()
对一个容器对象,调用他的iter()就得到他的迭代器,调用next()迭代器就会返回下一个值,知道迭代器没有值了才会返回
字符串的迭代器
for ss in "diedaiqi":
print(ss)
#输出是
d
i
e
d
a
i
q
i
生成器
迭代器和生成器是python这两年来引入的最强大的两个特性。生成器其实是迭代器的一种实现。
生成器的发明使得Python模仿协同程序的概念得以实现。;所谓协同程序,就是可以运行的独立函数调用,函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始
Python是通过生成器来实现类似于协同程序的概念:生成器可以暂时挂起函数,并保留函数的局部变量等数据,然后在再次调用它的时候,从上次暂停的位置继续执行下去。
一个例子形象说明:
def myGen():
print("生成器正在执行")
yield 1
yield 2
for i in myGen():
print(i)
总结
迭代器和生成器待以后见得多了再行补充