Python 学习笔记(十二)Python文件和迭代(二)
2024-10-21 18:59:53
迭代
基本含义
迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
在计算科学中,迭代是程序中对一组指令(或一定步骤)的重复。它既可以被用作通用的术语(与“重复”同义),也可以用来描述一种特定形式的具有可变状态的重复。
操作
>>> 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() 函数
最新文章
- 【VC++技术杂谈001】音频技术之调节音量及设置静音
- yii2超好用的日期组件和时间组件
- sqlserver 数据库中时间函数的建立
- windows下python检查文件是否被其它文件打开.md
- 【转】TCP协议的无消息边界问题
- Scheme vs Schema
- TCP与UDP在socket编程中的区别 (网络收集转载)
- iOS - NSLog的使用方法
- Dynamics CRM2013 注释中的内容无法正常显示问题
- LeetCode之“链表”:Reverse Linked List &;&; Reverse Linked List II
- Kafka运行一段时间报错Too many open files
- iOS 常用三方(持续更新)
- Kubernetes — 为什么我们需要Pod?
- 安装Joomla!3
- element-ui Select 清空model,页面没有清空选中项的问题
- 使用itext直接替换PDF中的文本
- LoadRunner Controller 常见用法
- 一个Activity中使用两个layout实例
- 快递100API接口开发
- PHP 常用资源