Python的Iterator可以同時列印資訊

2022-07-09 05:18:12 字數 917 閱讀 3354

updated: may 12, 2020 5:58 pm

今天看到乙個python iterator的高階用法,之前並不知道,孤陋寡聞了。

def my_gen():

for i in range(10):

print(f"this is ")

yield i

上面這個iterator會在每次迴圈過程中列印資訊,但是返回值依然是i。

也就是說,

b = np.linspace(0, 100, num=10)

a = my_gen()

for i in a:

print(b[i])

的輸出結果是

this is 0

0.0this is 1

11.11111111111111

this is 2

22.22222222222222

this is 3

33.33333333333333

this is 4

44.44444444444444

this is 5

55.55555555555556

this is 6

66.66666666666666

this is 7

77.77777777777777

this is 8

88.88888888888889

this is 9

100.0

用於indexing的引數依然是yield i中的i,與附加的列印操作無關。這樣的iterator特別適合有verbose的情況,可以一般迴圈一邊列印進度。

python的迭代器iterator

可以被next函式呼叫不斷返回下乙個值的物件稱為迭代器 iterator 可以直接用於for迴圈的物件稱為可迭代物件 iterable 所有的可迭代物件均可以通過iter函式轉變為迭代器。事實上,for迴圈內部先呼叫iter 把iterable變成iterator然後再進行迴圈迭代 iterator...

Python 學習筆記 關於 Iterator

iterator 是 迭代器 的意思,iterator 與 iterable 物件 不同。從字面上理解,迭代器 與 可迭代物件 當然不同。從性質上理解,iterable 實際上是乙個惰性序列,需要用 next 來計算序列的下乙個內容,也可以使用 for 迴圈遍歷 如果有界的話 而 iterable ...

Python程式設計 iterator迭代器

可以直接作用於for迴圈的物件 1 集合資料型別 list,tuple,dict,set,str 2 generator 包括生成器和帶yield的生成器函式 可以被next 函式呼叫,並不斷返回下乙個值的物件 表示乙個資料流,甚至是無窮大的資料流,如全體自然數 惰性計算 from collecti...