Python学习-迭代器和生成器

Posted Ian_Learning

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习-迭代器和生成器相关的知识,希望对你有一定的参考价值。

 1 ‘‘‘。在Python中,这种一边循环一边计算的机制,称为生成器:generator。
 2 要创建一个generator,有很多种方法。
 3 可以通过next()函数获得generator的下一个返回值‘‘‘
 4 
 5 def fib(max):
 6     n, a, b = 0, 0, 1
 7     while n < max:
 8         #print(b)
 9         yield b
10         a, b = b, a + b
11         n = n + 1
12     return done
13 
14 
15 #_*_coding:utf-8_*_
16 #@__author__ = ‘Alex Li‘
17 
18 import time
19 def consumer(name):
20     print("%s 准备吃包子啦!" %name)
21     while True:
22        baozi = yield
23 
24        print("包子[%s]来了,被[%s]吃了!" %(baozi,name))
25 
26 
27 def producer(name):
28     c = consumer(A)
29     c2 = consumer(B)
30     c.__next__()   #这样才能启用生成器
31     c2.__next__()  #这样才能启用生成器
32     print("老子开始准备做包子啦!")
33     for i in range(10):
34         time.sleep(1)
35         print("做了2个包子!")
36         c.send(i)
37         c2.send(i)
38 
39 producer("alex")
40 
41 #通过生成器实现协程并行运算
42 
43 #迭代器
44 """凡是可作用于for循环的对象都是Iterable(可迭代)类型;
45 凡是可作用于next()函数的对象都是Iterator(迭代器)类型,它们表示一个惰性计算的序列;
46 集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()
47 if 函数获得一个Iterator对象:
48 """

 

以上是关于Python学习-迭代器和生成器的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之迭代器和生成器

Python学习-迭代器和生成器

Python补充学习.迭代器和生成器

Python补充学习.迭代器和生成器

python基础学习迭代器和生成器

流畅的python第十四章可迭代的对象,迭代器和生成器学习记录