人工智能之Python16 迭代器和生成器

有一个概念我们一直在用,但我们却从来没有认真的去深入剖析它-这个概念就是迭代。

迭代器

迭代的意思类似于循环,每一次重复的过程被称为一次迭代的过程,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。提供迭代方法的容器称为迭代器,通常接触的迭代器有序列、列表、元组、字符串还有字典也是迭代器,都支持迭代的操作。

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)

总结

迭代器和生成器待以后见得多了再行补充

猜你喜欢

转载自blog.csdn.net/u012806787/article/details/79317517