Chinaunix首页 | 论坛 | 博客
  • 博客访问: 152615
  • 博文数量: 69
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 595
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-16 00:00
个人简介

宁可逆流而上与众不同,也不顺风顺水随波逐流

文章分类

全部博文(69)

文章存档

2020年(1)

2018年(9)

2017年(43)

2016年(16)

我的朋友

分类: Python/Ruby

2016-12-02 21:32:52

迭代器是访问集合的方式,只要它能被next()函数调用并不断返回下一个值,那么它就是迭代器。最重要的是它和生成器一样也是惰性计算(只有在元素被需要的时候才生成,节约空间)。
区分可迭代的和迭代器:
   list、dict、str都是可迭代的,但不是迭代器,他们在创建时就创建了所有元素,而迭代器只要在元素被需要时才创建,所以它也不可能知道元素个数,而其它的却知道。

区分生成器和迭代器:
    生成器在前一节说过,可以通过函数来实现,而迭代器是通过一组元素集合来实现。一个可以有执行过程,另一个只是值的集合
凡是可迭代对象都可以通过iter()函数变为迭代器。
for循环之所以也能调用出生成器和迭代器的值是因为它是通过不断调用next()函数实现的

阅读(388) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~