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...