python-列表生成式

生成一个平方列表

生成一个2的倍数列表

所以呢,当x*2的位置变换成函数呢?

很明显依然可以一个一个取值

所以接下来把重复的代码做成一个循环

s = (x*x for in range(5))
#生成器就是一个可迭代对象(Iterable)
for i in s:
    print(i)

生成器一共有两种创建方式

1、(x*x for i in range(5))

2、yield   #可以实现伪并发

 

#什么是可迭代对象  (for循环后的对象是具有iter方法的)

s=[1,2,3)

s.__iter__()

def foo():
    print("OK1")
    yield 1
    
    print("ok2")
    yield 2
g = foo()
print(g)
next(g)

#send(null) 第一次传一个空值

def foo():
print("ok")
count = yield 1
print(count)
yield 2
g = foo() #<generator object foo at 0x0000024801441570>
print(g)
print(g.send(None))
print(g.send("干点别的事"))
 

 

posted @ 2019-07-18 18:32  MTcx  阅读(527)  评论(0编辑  收藏  举报