迭代

基本含义

  迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。

   在计算科学中,迭代是程序中对一组指令(或一定步骤)的重复。它既可以被用作通用的术语(与“重复”同义),也可以用来描述一种特定形式的具有可变状态的重复。

操作

 >>> lst =[1,2,3,4]
>>> for i in lst: #for 循环读取列表中的每一个元素
... print i
...
1
2
3
4
>>> lit =iter(lst) #创建迭代器对象
>>> type(lit) #列表迭代器
<type 'listiterator'>
>>> dir(lit) #查看列表迭代器的方法 ,next()
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__length_hint__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'next']
>>> lit.next() 列表元素中的第一个元素
1
>>> lit.next() 列表元素中的第二个元素
2
>>> lit.next()
3
>>> lit.next()
4
>>> lit.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
>>> lit =iter(lst)
  #这个for循环与前面list for循环,从结果看是一样的。实际上,运行过程上是有区别的。
  类似文件,读取大数据的时候,用for循环完成对迭代器对象中每个元素读取的过程,可体现出迭代器的优势。
  因为是把所要读取的元素一个一个拿到内存,而不是一下全部放到内存
>>> for i in lit:
... print i
...
1
2
3
4
>>> help(iter)
Help on built-in function iter in module __builtin__:
#返回值是一个迭代对象
  #参数必须是符合迭代协议的对象,或者是序列对象
iter(...)
iter(collection) -> iterator
iter(callable, sentinel) -> iterator Get an iterator from an object. In the first form, the argument must
supply its own iterator, or be a sequence.
In the second form, the callable is called until it returns the sentinel. >>>

迭代是Python最强大的功能之一,是访问集合元素的一种方式。

迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()

字符串,列表或元组对象都可用于创建迭代器

迭代器对象可以使用常规for语句进行遍历

也可以使用 next() 函数

最新文章

  1. 【VC++技术杂谈001】音频技术之调节音量及设置静音
  2. yii2超好用的日期组件和时间组件
  3. sqlserver 数据库中时间函数的建立
  4. windows下python检查文件是否被其它文件打开.md
  5. 【转】TCP协议的无消息边界问题
  6. Scheme vs Schema
  7. TCP与UDP在socket编程中的区别 (网络收集转载)
  8. iOS - NSLog的使用方法
  9. Dynamics CRM2013 注释中的内容无法正常显示问题
  10. LeetCode之“链表”:Reverse Linked List &amp;&amp; Reverse Linked List II
  11. Kafka运行一段时间报错Too many open files
  12. iOS 常用三方(持续更新)
  13. Kubernetes — 为什么我们需要Pod?
  14. 安装Joomla!3
  15. element-ui Select 清空model,页面没有清空选中项的问题
  16. 使用itext直接替换PDF中的文本
  17. LoadRunner Controller 常见用法
  18. 一个Activity中使用两个layout实例
  19. 快递100API接口开发
  20. PHP 常用资源

热门文章

  1. sdoi 2017 r1游记
  2. 理解bind函数
  3. 20个实用便捷的CSS3工具、库及实例
  4. Python3.7安装Geenlet
  5. Telnet初试(本地测试)
  6. 相比之前其他几个入门的, 推荐: 简单vue2 入门教程
  7. MUI框架-13-使用百度地图 API(图文教程)
  8. String对象内存分析
  9. flask多线程多协程操作
  10. No value specified for &#39;Date&#39;错误