列表生成式:
[x*2 for x in range(10
生成器(generator object)
创建生成器两种方式:
1 (x*2 for x in range (10)) >>>>>>>>>>>generator object
2 def f():
yield
f() >>>>>>>>generator object
生成器的方法:
1 next (f()) >>>>>>>>>>>>>>>>>计算出一个值
注意:生成器在创建的时候已经决定了能计算出值 的个数,调用next的次数超过这个值就会报stopIteration
遍历所有元素可以通过for循环:
for i in [1,2,3]:
print i
for 循环内部做了三件事:
-
调用对象的iter()方法,返回一个迭代器对象
```python
while:
try:
i=next (list_iterator)
except StopIteration:
break
```
-
send():
def f (): print ("ok1") ret = yield 1 print ("ok2") yield 2 f().send(None) #等价于next(f()) f().send("ASC") #在第二次传入参数 ret = "ASC" 第一次用send传空值
4.迭代器
1.满足迭代器协议:
1.内部有next方法
2.内部有Iter()方法
li = [1,2,3,]:Itrerble #(内部有Iter方法)>>>>>>
i = Iter(li)
for x in i:
print(x)
标签:复习,generator,object,生成器,send,next,笔记,print
From: https://www.cnblogs.com/aimi0014/p/16705357.html