Python学习笔记(迭代,列表解析,生成器)

迭代(iterable):支持每次返回自己所包含一个对象的

iter()得到迭代器,.next()遍历列表。

列表解析:根据已有列表高效生成列表的方式。

生成器(Generator):

通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。

所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。

>>>l = [i*i for i in range(10)]

>>>print l

0 ,1, 4 ,9 ,16, 25, 36 ,49 ,64, 81

>>>g =(i*i for i in range(10))

>>>print g

generator object <genexpr> at 0x104feab40>

 next()方法实现单个打印出来

>>> g.next()
0
>>> g.next()
1
>>> g.next()
4
>>> g.next()
9
>>> g.next()
16
>>> g.next()
25
>>> g.next()
36
>>> g.next()
49
>>> g.next()
64
>>> g.next()
81
>>> g.next()

 

原文地址:https://www.cnblogs.com/seven000/p/7054102.html