标签:
一、迭代器 对于Python 列表的 for 循环,他的内部原理:查看下一个元素是否存在,如果存在,则取出,如果不存在,则报异常 StopIteration。(python内部对异常已处理) class listiterator(object) | Methods defined here: | | __getattribute__(...) | x.__getattribute__(‘name‘) <==> x.name | | __iter__(...) | x.__iter__() <==> iter(x) | | __length_hint__(...) | Private method returning an estimate of len(list(it)). | | next(...) | x.next() -> the next value, or raise StopIteration listiterator 二、生成器 range不是生成器 和 xrange 是生成器 readlines不是生成器 和 xreadlines 是生成器 >>> print range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> print xrange(10) xrange(10) 生成器内部基于yield创建,即:对于生成器只有使用时才创建,从而不避免内存浪费 有如下列表: [13, 22, 6, 99, 11] 请按照一下规则计算: 13 和 22 比较,将大的值放在右侧,即:[13, 22, 6, 99, 11] 22 和 6 比较,将大的值放在右侧,即:[13, 6, 22, 99, 11] 22 和 99 比较,将大的值放在右侧,即:[13, 6, 22, 99, 11] 99 和 42 比较,将大的值放在右侧,即:[13, 6, 22, 11, 99,] 13 和 6 比较,将大的值放在右侧,即:[6, 13, 22, 11, 99,]
标签:
原文地址:http://my.oschina.net/eddylinux/blog/526738