python 迭代器與生成器

2021-08-28 16:47:09 字數 806 閱讀 9773

迭代就像是遍歷,迭代只能乙個個往下獲取,不能往上獲取,需使用iter函式。

name是乙個包含元素cc,dd,ee的迭代器

>>> name=iter(['cc','dd','ee'])

#訪問迭代器中的元素需使用next方法

>>> print(name.__next__())

cc>>> print(name.__next__())

dd>>> print(name.__next__())

ee################################生成器#######################

#在函式中加入yield那麼函式就變成乙個生成器,例項:

def take_money(num):

while num>0:

num -= 10

yield "你拿了10哦。"

print("還可以拿啦靚仔!")#當拿完則不執行此行**

package = take_money(40)#給num值40

print(package.__next__())#通過next方法訪問,輸出為 "你拿了10哦。",當下一次執行next時才會輸出"還可以拿啦靚仔!"

print(package.__next__())#輸出"還可以拿啦靚仔!","你拿了10哦。"

print("no!")#中間可以跳出來執行這倆句**,有點中斷的味道,輸出"no"

print("no!")#輸出"no"

print(package.__next__())#"還可以拿啦靚仔!","你拿了10哦。"

print("ok")

Python生成器與迭代器

生成器只有在用的時候會出現在記憶體中,對比列表全部存在記憶體中,減少了記憶體占用 next 函式 依次取生成器的值 s x 2 for x in range 1000 中括號是列表解析,小括號表示生成一系列值,就是生成器 s at 0x7fa20aa8b048 print next s 用next ...

python 迭代器與生成器

迭代器和生成器 print 1 in 1,2,3 print 1 not in 1,2,3 print 4 in print 4 not in 1,2,3 print x not in dlkjfxfei 可迭代物件 iterable 可以被next 函式呼叫並不斷返回下乙個值 知道沒有資料時丟擲s...

Python 迭代器與生成器

一 迭代器 理解迭代器需要搞清楚容器 container 迭代器協議 可迭代物件 iterable 迭代器 iterator 生成器 generator 1 容器 container 容器是一種把多個元素組織在一起的資料結構,容器中的元素可以逐個地迭代獲取,可以用in,not in關鍵字判斷元素是否...