在学习python cookbook中,学习迭代器那一章的时候,看到了一个使用多个生成器组成管道的方式,进行日志查询,当然这个不仅仅可以用在日志查到中,只要是处理一批数据时都可以使用,为了加深印象,所以写这些文章。
原文章网站:http://www.dabeaz.com/generators/
强烈建议看一下,虽然是全英文,但是初中英文水平基本足够
part1
介绍for循环和生成器
for循环我们都使用过,但是为什么for循环后会出现下一个,我们没有想过。
for i in [1,2,3,4,5]
print(i)
这些可以迭代,所以你才可以循环,具体循环机制是 这些可迭代对象是有‘可迭代协议的’,
a=[1,2,3]
it=iter(a)
iter方法可以把一个可迭代对象,转为可迭代的
it.__next__()
1
__next__()方法可以迭代下一个元素,直至没有报错为止。
网址对可迭代是这样解释的:
Any object that supports iter() is said to be"iterable."
迭代器:
A:使用yield关键字的函数为生成器
B:使用()括的列表推导式的也是生成器