(1)簡單使用
>>> li=[5,6,7](2)字典的迭代預設為字典key的迭代:>>>
>>> it=iter(li)
>>>
(it)
>>>
>>> print(it.__next__
())5
>>>
>>> print(it.__next__
())6
>>>
>>> print(it.__next__
())7
>>>
字典value的迭代:
>>> a= iter(.values())得到的結果>>>type(a)
'dict_valueiterator
'>
>>> print(a.__next__(3)next迭代器,next())2
>>> print(a.__next__
())4
>>>
的用法
a = [1,2,3](1)簡單應用*注意:推導列表和生成器寫法的區分>>> a=iter(a)
>>>next(a)
1>>>next(a)
2>>>next(a)
3
>>> l = [x * x for x in range(10)]#結果如下:推導列表的寫法
(l)[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> g = (x * x for x in range(10))#
生成器的寫法
(g)at 0x000002301ab5fe08>#表示g為生成器
>>>
(next(g))
0>>> print
(next(g))
1>>> print
(next(g))
4>>> print
(next(g))
9>>>
>>> for n in
g:...
(n)...
1625
3649
6481
>>>
>>> l = [x for x in range(1,10,2)](2)yield生成器,相當於next(l)[1, 3, 5, 7, 9]
>>> g = (x for x in range(1,10,2))
(g)at 0x000002301ab5feb8>
(next(g))
1>>> print
(next(g))
3>>> print
(next(g))
5>>> print
(next(g))
7>>>
>>> for n in g: #
注意此處的結果
(n)...
9>>>
定義yield生成器的方法:
>>> def odd():#定義yield生成器的方法
... print ('
step 1')
...
yield 1...
print ('
step 2')
...
yield 3...
print ('
step 3')
...
yield 5...
>>>
傳入引數後,得到的結果:
>>> o =odd()>>> for i in o:(next(o))
step 1
1>>> print
(next(o))
step 2
3>>> print
(next(o))
step 3
5>>>
... print (i)
...>>>
Python 迭代器 生成器
可以直接作用於for迴圈的物件,統稱為可迭代物件 iterable。iterator物件表示的是乙個資料流,iterator物件可以被next 函式呼叫並不斷返回下乙個資料,直到沒有資料時丟擲stopiteration錯誤。可以把這個資料流看做是乙個有序序列,但我們卻不能提前知道序列的長度,只能不斷...
python 迭代器,生成器
什麼事迭代 可直接用作與for迴圈的物件統稱為可迭代物件 可以被next 函式呼叫,並不斷返回下乙個值的物件稱為迭代器,所有的iterable均可以通過內建函式iter 來轉變為iterator。對於迭代器來講,有乙個next 就夠了。在你使用for和in語句時,程式就會自動呼叫即將被處理的物件的可...
python 迭代器 生成器
知識背景 1 呼叫乙個普通的python函式時,一般是從函式的第一行 開始執行,結束於return語句 異常或者函式結束 可以看作隱式的返回none 2 一旦函式將控制權交還給呼叫者,就意味著全部結束。函式中做的所有工作以及儲存在區域性變數中的資料都將丟失 3 再次呼叫這個函式時,一切都將從頭建立。...