python 生成器 迭代器,了解一下

2021-08-20 19:26:02 字數 1187 閱讀 4592

generator

生成器,不曉的為什麼這麼叫

用來生產元素的

新建list、dict時生成元素

import random

m1 = {}

for i in range(5):

x = random.randint(65,123)

m1[i] =

print(m1)

m3 =

print(m3)

#生成乙個矩陣

li_2d = [[0] * 3 for i in range(4)]

li_2d[0][0] = 100

print(li_2d)

l2 =

for i in range

(4):

s =chr(random.randint(65

,123))

print(l2)

so

工廠生產產品的特性,它也有

按需生產,不消耗記憶體

不能回爐,只能接著上次的繼續生產,只能next()

不能訪問生成過的元素,產品出廠了還怎麼訪問

#在方法中

yield x # 生成x元素

#該方法就成了乙個生成器

yield 同時也儲存了當前的狀態

可以使用nexit 重新回到中斷的地方

繼續剛在的繼續執行

迭代器 iterable 

可以被next函式呼叫並不斷返回下一值的物件成為迭代器iterator

isinstance(,iterable) 判斷是否時迭代器物件 但不是迭代器

整數不可以被迭代

可以使用iter() 函式變成可迭代的

沒有next方法的不叫 迭代器

生成器時乙個迭代器

iterator 是乙個資料流

該物件可以被nexit呼叫不斷返回下乙個資料

資料流可以看作是乙個有序的序列

只能next 按需計算

不能知道所有的長度

iterator 表示乙個無限大的資料流

for迴圈的物件都是iterable物件

用於next函式的物件是iterator型別

'''

Python 迭代器 生成器

可以直接作用於for迴圈的物件,統稱為可迭代物件 iterable。iterator物件表示的是乙個資料流,iterator物件可以被next 函式呼叫並不斷返回下乙個資料,直到沒有資料時丟擲stopiteration錯誤。可以把這個資料流看做是乙個有序序列,但我們卻不能提前知道序列的長度,只能不斷...

python 迭代器,生成器

什麼事迭代 可直接用作與for迴圈的物件統稱為可迭代物件 可以被next 函式呼叫,並不斷返回下乙個值的物件稱為迭代器,所有的iterable均可以通過內建函式iter 來轉變為iterator。對於迭代器來講,有乙個next 就夠了。在你使用for和in語句時,程式就會自動呼叫即將被處理的物件的可...

python 迭代器 生成器

知識背景 1 呼叫乙個普通的python函式時,一般是從函式的第一行 開始執行,結束於return語句 異常或者函式結束 可以看作隱式的返回none 2 一旦函式將控制權交還給呼叫者,就意味著全部結束。函式中做的所有工作以及儲存在區域性變數中的資料都將丟失 3 再次呼叫這個函式時,一切都將從頭建立。...