Python迭代器

一、文件迭代器

readline()每次读取文件的一行,每次调用readline方法会自动到下一行,到文件末尾时,会返回空字符串。

_next_()方法同readline()一样,只是到最后一行会引发stopiteration。

逐行读取文本的的最佳方式是用for循环每轮自动调用next,for line in open(文件名)。

readlines()一次将文件读取到内存,如果文件过大,会导致计算机内存空间不够用,效果差。

手动迭代:iter和next

f=open(文件名)

f._next_() 与next(f)的效果一样,每次调用读取一行

从技术角度讲,for循环开始时,会通过它传给iter内置函数,以便从可迭代对象中获取一个迭代器,返回的对象含有需要的next方法。

>>> L=[1,2,3]
>>> I=iter(L)   #获取一个迭代对象

>>> next(I)
1
>>> next(I)
2
>>> next(L)
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
next(L)
TypeError: 'list' object is not an iterator

最初的一步对于文件对象来说是不必要的,因为文件对象有自己的迭代器,即文件对象有自己的—_next_()方法。

>>>f=open(文件名) 

>>>iter(f) is f

True

>>>L=[1,2,3]

>>>iter(L) is L

False

转载于:https://www.cnblogs.com/moady/p/5682577.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成千上万的在线课程时,如何保持理智和学习编码

by Travis Chan通过特拉维斯陈 成千上万的在线课程时&#xff0c;如何保持理智和学习编码 (How to stay sane and learn to code when there are thousands of online courses) We live in the information age. Information about anything we can think of is accessible to…

oracle中noguarantee,聊聊UNDO_RETENTION作用(修改guarantee)

oracle10g中&#xff0c;针对dba_tablespace&#xff0c;加了其中一个额外列是retention.回忆一下Oracle 10g之前,在自动Undo管理的模式下&#xff0c;我们都知道undo_retention参数的作用是用来控制当transaction被commit之后&#xff0c;undo信息的保留时间。这些undo信息可以…

【Hankson 的趣味题】

可能我只适合这道题的50分 但还是要争取一下的 我们知道对于\(gcd\)和\(lcm\)有这样的定义 \(a\prod _{i1}^{\pi(a)}p_i^{d_{i}}\) \(b\prod _{i1}^{\pi(b)}p_i^{g_{i}}\) 那么则有 \(gcd(a,b)\prod_{i1}^{\pi(max(a,b))} p_i^{min(g_i,d_i)}\) \(lcm(a,b)\prod_{i1}^{\pi(max(…

C# 控件双缓冲控制 ControlStyles 枚举详解

ControlStyles 枚举.NET Framework 4指定控件的样式和行为。 此枚举有一个 FlagsAttribute 特性&#xff0c;通过该特性可使其成员值按位组合。 命名空间&#xff1a; System.Windows.Forms程序集&#xff1a; System.Windows.Forms&#xff08;在 System.Windows.Forms.dll …

协作机器人 ai算法_如果我们希望人工智能为我们服务而不是不利于我们,我们需要协作设计...

协作机器人 ai算法by Mariya Yao姚iya(Mariya Yao) 如果我们希望人工智能为我们服务而不是不利于我们&#xff0c;我们需要协作设计 (If we want AI to work for us — not against us — we need collaborative design) The trope “there’s an app for that” is becoming …

Shadow Brokers 公布 2.1 万美元的 0day 订阅服务

神秘黑客组织 Shadow Brokers 宣布将向支付 2.1 万美元 0day 订阅服务的个人公布最新一批的 NSA 工具&#xff0c;这一声明给全世界的白帽子黑客或安全研究人员造成了一场伦理危机。 一方面&#xff0c;Shadow Brokers 此前释出过创造出勒索软件 WannaCry 的 NSA 工具&#xff…

linux awk 常见字符串处理

awk指定输出列&#xff1a; awk {print $0} file #打印所有列awk {print $1} file #打印第一列 awk {print $1, $3} file #打印第一和第三列 cat file | awk {print $3, $1} #打印第三列和第一列&#xff0c;注意先后顺序。 cat file | awk {print $3, $NF} #打印第三列…

oracle ldap 配置,ldap 安装

一、安装步骤1:配置yum源挂着盘镜像时用到&#xff1a; 这里不做解释;(yum clean all && yum makecache)2:安装OpenLDAP组件1)安装OpenLDAP组件命令如下:[rootgitea ~]# yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap -ycom…

scp跨主机拷贝工具

参考&#xff1a;http://www.cnblogs.com/hitwtx/archive/2011/11/16/2251254.html SSH上A机&#xff0c;要将10.1.17.95机/tpdata/shell_script/下面的crontab.tar.gz文件拷贝到A机的当前文件夹下面&#xff1a; scp weblogic10.1.17.95:/tpdata/shell_script/crontab.tar.gz …

Google Chrome浏览器可能在您不知情的情况下破坏了您的测试

by Robert Axelsen罗伯特阿克森(Robert Axelsen) Google Chrome浏览器可能在您不知情的情况下破坏了您的测试 (Google Chrome might have broken your tests without you even knowing about it) My colleague just discovered that Chrome 58 (released April 19th) has sile…

Java 9 将采用新的版本字符串格式

在现有的版本编码格式使用了两年之后&#xff0c;从Java 9开始&#xff0c;Java版本方案将根据业内软件版本编码的最佳实践进行修改。使用或解析Java版本字符串的应用程序开发人员要注意了&#xff0c;因为这种变化可以会影响他们的应用程序。 正如JEP 223所阐述的那样&#xf…

oracle 表更新表,Oracle 更新表(另一张表)

JUC学习笔记--Thread多线程基础实现多线程的两种方法 java 实现多线程通过两种方式1.继承Thread类 ,2.实现Runnable接口 class Newthead extends Thread{ public void ru ...SharePoint中新创建的Web Application在浏览器中报404错误问题描述:在安装完成SharePoint 2010后,进入…

jQuery(爱前端)

一 jQuery 简介 官网&#xff1a;www.jquery.com 口号&#xff1a;写更少的代码&#xff0c;做更多的事情 jQuery 是一个快速、小型的、特性很多的JS库&#xff0c;它把很多事儿都变得简单。jQuery是免费的、开源的。 jQuery 是 DOM 编程领域的霸主&#xff0c;极大的简化了原生…

跳过 centos部署 webpy的各种坑

用centos部署webpy发现的各种坑&#xff1a; 1、python 版本&#xff1a; 2、中文编码&#xff1a; 3、web模块路径&#xff1a; 在命令行里输入python&#xff0c;能import web&#xff0c;但是网站错误报告一直报告没有找到web模块&#xff0c;说明web模块路径有问题。python…

撰写本文的所有基本React.js概念

Update: This article is now part of my book “React.js Beyond The Basics”.更新&#xff1a;本文现在是我的书《超越基础的React.js》的一部分。 Read the updated version of this content and more about React at jscomplete.com/react-beyond-basics.在jscomplete.com…

CentOS 7 firewalld使用简介

2019独角兽企业重金招聘Python工程师标准>>> Centos升级到7之后&#xff0c;发现无法使用iptables控制Linuxs的端口&#xff0c;google之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口&#xff1a; 1.快速使用说明 开启…

简述java语言的特点

简述java语言的特点&#xff1a; ① 简单的特性 ② 面向对象的特性 ③ 分布式处理的特性 ④ 健壮的特性 ⑤ 结构中立的特性 ⑥ 安全特性 ⑦ 可移植的特性 ⑧ 解释的特性 ⑨ 高性能的特性 ⑩ 多线程的特性 转载于:https://www.cnblogs.com/qq1335…

php函数嵌套 作用域,javascript 嵌套的函数(作用域链)_javascript技巧

嵌套的函数(作用域链)当你进行函数的嵌套时&#xff0c;要注意实际上作用域链是发生变化的&#xff0c;这点可能看起来不太直观。你可把下面的代码置入firebug监视值的变化。var testvar window属性;var o1 {testvar:1, fun:function(){alert(o1: this.testvaro1.fun();1o2.f…

【C#-枚举】枚举的使用

枚举是用户定义的整数类型。 namespace ConsoleApplication1 {/// <summary>/// 在枚举中使用一个整数值&#xff0c;来表示一天的阶段/// 如&#xff1a;TimeOfDay.Morning返回数字0/// </summary>class EnumExample{public enum TimeOfDay{Morning 0,Afternoon …

Elixir 初尝试 5 -- 遇见Actor

Actor模型的定义 wiki如是说 The actor model in computer science is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent computation. In response to a message that it receives, an actor can: …