python迭代_Python迭代
>>> f = open("208.txt")
>>> f.readline() #读第一行
'Learn python with qiwsir.\n'
>>> f.readline() #读第二行
'There is free python course.\n'
>>> f.readline() #读第三行
'The website is:\n'
>>> f.readline() #读第四行
'
http://qiwsir.github.io\n'
>>> f.readline() #读第五行,也就是这真在读完最后一行之后,到了此行的后面
'Its language is Chinese.\n'
>>> f.readline() #无内容了,但是不报错,返回空。
''
以上演示的是用readline()一行一行地读。当然,在实际操作中,我们是绝对不能这样做的,一定要让它自动进行,比较常用的方法是:
>>> for line in f: #这个操作是紧接着上面的操作进行的,请看官主要观察
... print line, #没有打印出任何东西
...
这段代码之所没有打印出东西来,是因为经过前面的迭代,指针已经移到了最后了。这就是迭代的一个特点,要小心指针的位置。
>>> f = open("208.txt") #从头再来
>>> for line in f:
... print line,
...
Learn python with qiwsir.
There is free python course.
The website is:
http://qiwsir.github.io
Its language is Chinese.
这种方法是读取文件常用的。另外一个readlines()也可以。但是,需要有一些小心的地方,看官如果想不起来小心什么,可以在将关于文件的课程复习一边。
上面过程用next()也能够读取。
>>> f = open("208.txt")
>>> f.next()
'Learn python with qiwsir.\n'
>>> f.next()
'There is free python course.\n'
>>> f.next()
'The website is:\n'
>>> f.next()
'
http://qiwsir.github.io\n'
>>> f.next()
'Its language is Chinese.\n'
>>> f.next()
Traceback (most recent call last):
File "", line 1, in
StopIteration
如果用next(),就可以直接读取每行的内容。这说明文件是天然的可迭代对象,不需要用iter()转换了。
再有,我们用for来实现迭代,在本质上,就是自动调用next(),只不过这个工作,已经让for偷偷地替我们干了,到这里,列位是不是应该给for取另外一个名字:它叫雷锋。
还有,列表解析也能够做为迭代工具,在研究列表的时候,看官想必已经清楚了。那么对文件,是否可以用?试一试:
>>> [ line for line in open('208.txt') ]
['Learn python with qiwsir.\n', 'There is free python course.\n', 'The website is:\n', '
http://qiwsir.github.io\n', 'Its language is Chinese.\n']
至此,看官难道还不为列表解析所折服吗?真的很强大,又强又大呀。
其实,迭代器远远不止上述这么简单,下面我们随便列举一些,在python中还可以这样得到迭代对象中的元素。
>>> list(open('208.txt'))
['Learn python with qiwsir.\n', 'There is free python course.\n', 'The website is:\n', '
http://qiwsir.github.io\n', 'Its language is Chinese.\n']
>>> tuple(open('208.txt'))
('Learn python with qiwsir.\n', 'There is free python course.\n', 'The website is:\n', '
http://qiwsir.github.io\n', 'Its language is Chinese.\n')
>>> "$$$".join(open('208.txt'))
'Learn python with qiwsir.\n$$$There is free python course.\n$$$The website is:\n$$$
http://qiwsir.github.io\n$$$Its language is Chinese.\n'
>>> a,b,c,d,e = open("208.txt")
>>> a
'Learn python with qiwsir.\n'
>>> b
'There is free python course.\n'
>>> c
'The website is:\n'
>>> d
'
http://qiwsir.github.io\n'
>>> e
'Its language is Chinese.\n'
上述方式,在编程实践中不一定用得上,只是向看官展示一下,并且看官要明白,可以这么做,不是非要这么做。
补充一下,字典也可以迭代,看官自己不妨摸索一下(其实前面已经用for迭代过了,这次请摸索一下用iter()...next()手动一步一步迭代)。
python迭代_Python迭代相关推荐
- python 跳过迭代_Python迭代和解析(4):自定义迭代器
Python迭代和解析(4):自定义迭代器 发布时间:2019-01-13 17:10, 浏览次数:280 , 标签: Python 解析.迭代和生成系列文章:https://www.cnblogs. ...
- python中循环迭代语句_python条件与循环-循环
1 while语句 while用于实现循环语句,通过判断条件是否为真,来决定是否继续执行. 1.1 一般语法 语法如下: while expression: suite_to_repeat 1.2 计 ...
- python 通过索引迭代列表_Python的索引迭代
Python中,迭代永远是取出元素本身,而非元素的索引. 对于有序集合,元素确实是有索引的.有的时候,我们确实想在 for 循环中拿到索引,怎么办? 方法是使用 enumerate() 函数: > ...
- python中迭代_python中的迭代什么意思
python中的迭代什么意思 发布时间:2020-09-21 12:33:45 来源:亿速云 阅读:67 作者:Leah 这期内容当中小编将会给大家带来有关python中的迭代什么意思,文章内容丰富且 ...
- python中可迭代对象是什么意思_python中可迭代对象是什么
python中可迭代对象是:存储了元素的一个容器对象,且容器中的元素可以通过"__iter__( )"方法或"__getitem__( )"方法访问.可迭代对象 ...
- python的可迭代对象是什么意思_python可迭代对象和迭代器区别
python内置迭代对象: 字符串,列表,元组,文件,字典 # 字符串迭代 str = "conding make me happy" for c in str: print(c, ...
- python中的迭代库
python中的迭代库为itertools,如果需要输出详细,需要使用类型工厂函数,如list,tuple将结果转换 itertools.product:product(A,B) 相当于((x, y) ...
- Python中的迭代遍历 for in
遍历就是从头到尾依次从列表中获取数据,在循环体内部针对每一个元素,执行相同的操作. 在Python中为了提高列表的遍历效率,专门提供的迭代(iteration)遍历. 使用for...in就能够在 P ...
- Python enumerate索引迭代
索引迭代 Python中,迭代永远是取出元素本身,而非元素的索引. 对于有序集合,元素确实是有索引的.有的时候,我们确实想在 for 循环中拿到索引,怎么办? 方法是使用 enumerate() 函数 ...
最新文章
- oracle user_scheduler_jobs,Oracle 定时任务dbms_scheduler
- python【Matlibplot绘图库】Animation动画(真の能看懂~!)
- python发明者叫什么-python是谁发明的
- 消息确认机制---confirm异步
- malloc函数具体解释
- Docker常用命令(docker快捷键)海康docker命令 LY
- pom.xml增加依赖
- 程序详细设计之代码编写规范_我在不编写任何代码的情况下建立了一个设计策划网站
- 前后端分离架构一直没机会实战?1周完成Vue+Core WebApi移动商城实战(含源码)!...
- 数据库实验3 数据库的单表查询
- 详解Visual Studio 2010中ASP.NET新增23项功能 转
- H.265与H.264对比有哪些优势
- ipv6的127位掩码如何表示_网络基础 | 浅谈IP地址与子网掩码
- 使用 Notepad 或 TextEdit 来编写 HTML
- ORB特征点提取与均匀化——ORBSLAM2源码讲解(一)
- Python爬取两个城市之间的直线距离
- 北京化工大学寒假集训【BUCTOJ】(1)1-6题
- Qt 信号与槽基础操作
- 看看华为、阿里大数据架构师的必备技能!
- 算法竞赛中的JAVA使用笔记