Python 学习笔记(十二)Python文件和迭代(二)
迭代
基本含义
迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
在计算科学中,迭代是程序中对一组指令(或一定步骤)的重复。它既可以被用作通用的术语(与“重复”同义),也可以用来描述一种特定形式的具有可变状态的重复。
操作
>>> 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() 函数
Python 学习笔记(十二)Python文件和迭代(二)的更多相关文章
- python学习笔记(十六)-Python多线程多进程
		
一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...
 - python学习笔记(十四)python实现发邮件
		
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart u ...
 - python学习笔记(六)文件夹遍历,异常处理
		
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
 - Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
		
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
 - python学习笔记1之-python简介及其环境安装
		
python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...
 - python学习笔记十四:wxPython Demo
		
一.简介 wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的.功能键全的GUI用户界面. wxPython是作为优秀的跨平台GUI库wxWidgets ...
 - python 学习笔记十九 django深入学习四 cookie,session
		
缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显, ...
 - python 学习笔记十五 django基础
		
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
 - 吴裕雄--天生自然python学习笔记:Python3 File(文件) 方法
		
open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() ...
 - python 学习笔记十 rabbitmq(进阶篇)
		
RabbitMQ MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消 ...
 
随机推荐
- 牛客Wannafly挑战赛23F	计数(循环卷积+拉格朗日插值/单位根反演)
			
传送门 直接的想法就是设 \(x^k\) 为边权,矩阵树定理一波后取出 \(x^{nk}\) 的系数即可 也就是求出模 \(x^k\) 意义下的循环卷积的常数项 考虑插值出最后多项式,类比 \(DFT ...
 - Ubuntu16.04 下安装tomcat
			
有两种常用方法: 一.通过 apt-get 命令进行在线安装(会自动配置好环境变量和服务) 二.通过下载并解压 .tar.gz 包进行手动安装(需要手动配置环境变量) 一.通过 apt-get 命令进 ...
 - Http Status Code 套餐合集(转载)
			
1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 100(继续)请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101(切换协议)请求者已要 ...
 - html5 移动端开发
			
移动端开发总结 目录 1.手机与浏览器 2.Viewport(视窗) 3. 媒体查询 4.px,em,rem,pt 5.设备像素比devicePixelRatio 6.移动web中的图标及字体 ...
 - INNODB与MyISAM两种表存储引擎区别
			
mysql数据库分类为INNODB为MyISAM两种表存储引擎了,两种各有优化在不同类型网站可能选择不同,下面小编为各位介绍mysql更改表引擎INNODB为MyISAM技巧. 常见的mysql表引擎 ...
 - Lambda多表联合
			
var query = database.Posts // your starting point - table in the "from" statement .Join(da ...
 - react入门参考资料
			
ReactJS简介 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站.做出 ...
 - GIT:如何管理本机的多个ssh密钥(多个远程仓库账号)
			
最近在学习git,首先推荐一个个人认为很不错的git教程,学习后,从git新手变成了git入门了,仍需继续努力. 廖老师的git学习教程(其他git基础知识点,本篇博客就不做介绍了,自己看教程学习吧, ...
 - POP3、SMTP端口(SSL、TSL)
			
POP3服务器地址: 110 995 支持SSLSMTP服务器地址: 25 465 或者 587 支持SSL(TSL) 465端口是SSL/TLS通讯协议的 ...
 - Windows环境下使用Nginx搭建负载均衡
			
前言 最近没有什么事情,喜欢总结并学习东西!前几天写来一个Session共享,那么我们为什么需要Session共享?因为我们的应用程序分布在多个服务器上,为了合理分配用户的请求,就需要用到负载均衡技术 ...