【python】迭代器和生成器区别
来源:互联网 发布:如何利用淘宝套现 编辑:程序博客网 时间:2024/06/08 07:17
迭代器和生成器区别
1 什么是迭代器
任何实现了
__iter__
和__next__()
方法的对象都是迭代器,__iter__
返回迭代器自身,__next__
返回容器中的下一个值,如果迭代器中没有更多元素了,则抛出StopIteration异常。例如:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
2 什么是可迭代对象
能通过iter(.)内置方法转为迭代器的对象,都称为可迭代对象。包括字符串、列表、元组、字典以及迭代器、生成器。
3 什么是生成器
生成器包括生成器函数和生成器表达式。生成器是一种特殊的迭代器,之所以特殊是因为它是单迭代器。所谓单迭代器就是当多个变量指向同一个生成器,这些变量共享生成器的指针。也就是说当其中一个变量通过next(*)方法遍历完所有元素后,其他变量就不能再遍历了,遍历的话,就抛出stopiteration异常。
例如:
>>> G=(c for c in 'SPAM')
>>> I1=iter(G)
>>> next(I1)
'S'
>>> next(I1)
'P'
>>> I2 = iter(G)
>>> next(I2)
'A' #输出的是A不是S
(1)生成器函数
通过yield获得。
例如:
def fun(n):
for i in range(n):
print("a")
yield i**2
a=fun(4)
print(a)
print(next(a))
print(next(a))
输出:
<generator object fun at 0x0000000002D87D00>
a
0
a
1
(2)生成器表达式
用括号表达:
>>> (x**2 for x in range(10)) #这就是一个生成器表达式
阅读全文
1 0
- 【python】迭代器和生成器区别
- python迭代器和生成器 区别
- python 迭代器和生成器的区别
- python 生成器和迭代器的区别
- Python中生成器和迭代器的区别
- python迭代器和生成器
- Python 迭代器和生成器
- Python 迭代器和生成器
- Python迭代器和生成器
- Python迭代器和生成器
- python迭代器和生成器
- Python迭代器和生成器
- python迭代器和生成器
- python 迭代器和生成器
- python 迭代器和生成器
- Python--迭代器和生成器
- python迭代器和生成器
- Python 迭代器和生成器
- 【数据库】SQL导入CSV到表中指定部分字段
- 在阿里云服务器上搭建SVN服务端
- JNI调用出现XXX遇到问题已退出解决方法
- github Pages:利用github仓库做免费服务器储存,建立个人网站
- akka的ask消息发送
- 【python】迭代器和生成器区别
- java实现将文件(包含word,excel,图片等)转PDF
- 服务器上mysql中创建数据库后以及创建用户和授权
- springboot整合mybatis
- 阿里云虚拟化平台响应十九大带领中国踏入新时代,携手麦腾举办AI时代的加速核心武器交流会
- 架构设计EIT造型下的android框架(二)
- jstorm报错:deserialize queue is full
- 文字滚动
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合 一、搭建开发环境 1.1、使用Maven创建Web项目 执行如下命令: mvn archetype:create