python高階特性---迭代、生成器、迭代器
阿新 • • 發佈:2019-02-14
1.迭代
預設情況下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同時迭代key和value,可以用for k, v in d.items()
那麼,如何判斷一個物件是可迭代物件呢?
方法是通過collections模組的Iterable型別判斷
如何判斷一個變數是不是字串?
使用內建的isinstance函式
Python內建的enumerate函式可以把一個list變成索引-元素對
2.生成器
在Python中,這種一邊迴圈一邊計算的機制,稱為生成器:generator。
建立generator:
方法一:只要把一個列表生成式的[]改成(),用for迴圈遍歷元素
方法二:如果一個函式定義中包含yield關鍵字,那麼這個函式就不再是一個普通函式,而是一個generator
3.迭代器
可以直接作用於for迴圈的物件統稱為可迭代物件:Iterable。可以使用isinstance()判斷一個物件是否是Iterable物件
可以被next()函式呼叫並不斷返回下一個值的物件稱為迭代器:Iterator。可以使用isinstance()判斷一個物件是否是Iterator物件
生成器都是Iterator物件,但list、dict、str雖然是Iterable,卻不是Iterator。把list、dict、str等Iterable變成Iterator可以使用iter()函式