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.pswp.cn/news/395566.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395566.shtml
英文地址,請注明出處:http://en.pswp.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: …