迭代器,生成器

2021-09-09 07:00:35 字數 1385 閱讀 3392

迭代器:

1.什麼是迭代器

指更新換代的過程,應用程式的公升級

可迭代器物件是指可以使用迭代器取出資料的物件

帶下劃線開頭和結尾的方法都是特殊的方法,會在特定時間執行

通過函式__iter__()來獲取迭代器

所有容器型別都可迭代,包括字串

2.如何使用

1.獲取迭代器呼叫__iter__()得到迭代器

2,通過__next__()方法來獲取每個值

檔案也是可迭代物件也是迭代器

3.呼叫iiter將返回迭代器本身

l=[1,2,3,4]

res=l.__iter__()

while true:

try:

print(res.__next__())

except:

print("stop it")

break

3.生成器

yield 可以多次產生資料

函式**現yield 該函式就是生成器

一旦函式**現了yield,呼叫函式時不會立即執行函式體,返回乙個生成器物件

在呼叫函式的__next__方法時。遇到yield會暫停,每一次呼叫next都是基於上一次yield的位置往下走

同時會把yield後的資料返回給呼叫者,生成器就是迭代器,具備iter和next函式,可以直接for迴圈來遍歷

print("start")

yield

print("over")

yield

k1=res.__next__()

print(k1)

k2=res.__next__()

print(k2)

i=1while i<=100:

yield i

i+=1

for i in range(100):

print(qq.__next__())

send函式用於向生成器傳送資料,但是要先呼叫next

while true:

food=yield "雞蛋"

print(food)

c.__next__()

c.send("1")

c.send("2")

面向過程程式設計

#1、首先強調:面向過程程式設計絕對不是用函式程式設計這麼簡單,面向過程是一種程式設計思路、思想,而程式設計思路是不依賴於具體的語言或語法的。言外之意是即使我們不依賴於函式,也可以基於面向過程的思想編寫程式 #2、定義 面向過程的核心是過程二字,過程指的是解決問題的步驟,即先幹什麼再幹什麼 基於面向過程設計程式就好比在設計一條流水線,是一種機械式的思維方式 #3、優點:複雜的問題流程化,進而簡單化 #4、缺點:可擴充套件性差,修改流水線的任意乙個階段,都會牽一髮而動全身 #5、應用:擴充套件性要求不高的場景,典型案例如linux核心,git,httpd

生成器 迭代器

最近見天一直在看廖大的python教程,卻發現很多基礎看著很簡單,但卻不會應用,歸根結底還是因為理解不到位,故而又將教程學了一遍,並將自己的理解記錄一下,也方便後面查閱。由於沒有相關程式設計基礎,有些理解可能是錯的,敬請批評指正。想深入具體學習廖大部落格請移步廖雪峰的官方 有時候用迴圈生成列表太過繁...

迭代器,生成器

迭代器 生成器 生成器的第1種實現方式 列表生成式改為生成器 python中yield關鍵字 函式中如果有yield,那麼呼叫這個函式的返回值為生成器。當生成器g呼叫next方法,執行函式,知道遇到yield就停止 再執行next,從上一次停止的地方繼續執行 函式中遇return直接退出,不繼續執行...

迭代器 生成器

迭代器 iter 可迭代物件 下乙個元素的值 next 可迭代物件 類中實現 iter 方法 提供迭代器 實現迭代器 import time class mylistiter object 迭代器類 def init self,data self.data data self.index 0 def...