python 迭代器/生成器/迭代对象
2024-10-19 00:23:10
生成器: 带有yield的函数
迭代器:带有next 方法的对象,可以作为内建函数next的参数
迭代对象:带有__iter__方法的对象,__iter__方法返回迭代器
-----------------------------------------------
迭代对象可以用for遍历
生成器是一种迭代器,生成器可以通过send方法与调用方双向沟通
迭代对象和迭代器的联系是:可以对迭代对象使用iter()方法来生成迭代器
----------------------------------------------
总结:
1.迭代器一定是迭代对象,迭代对象不一定是迭代器
2.生成器一定是迭代器,迭代器不一定是生成器
3.使用for...in...来遍历迭代对象是最常用的方式
------------------------------------------------------------
例如: python2里的xrange,python3里的range 是迭代对象,但不是迭代器,其__iter__返回一个生成器
所以不可以next(range(5)), 但是可以 next(iter(range(5)))
最新文章
- iOS 疑难杂症— — 收到推送显示后自动消失的问题
- Moon.Orm 5.0其他额外配置的讲解
- NSURLSession与AFNetworking3.0
- 浅析.NET泛型
- HTTPS(SSL/TLS) 原理之深入浅出
- ReactiveCocoa初步
- Linux下的Libsvm使用历程录
- STS中搭建SpringMVC工程
- webstrom 常用快捷键
- hdu1428之dfs+spfa
- jenkins+svn+gradle自动化部署笔记
- Ansible之 Inventory 资源清单介绍
- phpstorm 2017.3.3的安装和破解
- 项目:《ssh框架综合项目开发视频》-视频目录和第六天的EasyUI简单讲解
- Redis学习--Redis数据类型
- centos7 虚拟机安装 以后不能联网问题
- iOS 项目架构tabbarController 嵌套 navbarController
- php--------对象(object) 与 数组(array) 的转换
- ROS的工作模式和ESXI网卡工作模式的关系
- 混合编程:error LNK2001: unresolved external symbol