一.迭代物件
1.概念
迭代物件:可以直接作用於for迴圈的物件統稱為可迭代物件:iterable。
2.可以直接作用於for迴圈的資料型別
(1)集合類資料型別,如list, tuple, dict, set, str等
(2)generator,包括生成器和帶yield的generator function.
以上這些直接作用於for迴圈的物件統稱為可迭代物件:iterable.
3.判斷乙個物件是不是可迭代物件(iterable)
可以使用isinstance,需要匯入模組
from collections import iterator
from collections import iterable
(1)判斷 str 型別是不是可迭代物件
isinstance(』』,iterable)
isinstance(『abc』,iterable)
print(isinstance(』』,iterable)) # true
print(isinstance(『abc』,iterable)) # true
(2)判斷 list 型別是不是可迭代物件
isinstance(,iterable)
isinstance([1,2,3,4],iterable)
print(isinstance(,iterable)) # true
print(isinstance([1,2,3,4],iterable)) # true
(3)判斷 元組 型別是不是可迭代物件
isinstance(tuple(),iterable)
isinstance((1,2,3,4),iterable)
print(isinstance(tuple(),iterable))
print(isinstance((1,2,3,4),iterable))
(4)判斷 集合 型別是不是可迭代物件
isinstance(set(),iterable)
isinstance((1,2,3,4),iterable)
print(isinstance(set(),iterable)) # true
print(isinstance((1,2,3,4),iterable)) # true
(5)判斷 字典 型別是不是可迭代物件
isinstance({},iterable)
isinstance(,iterable)
print(isinstance({},iterable)) # true
print(isinstance(,iterable)) # true
(6)判斷 for 迴圈是不是可迭代物件
isinstance((x for x in range(10)), iterable)
print(isinstance((x for x in range(10)), iterator)) # true
二. 迭代器
1.概念
迭代器:可以被next()函式呼叫並不斷返回下乙個值的物件稱為迭代器:iterator。
2.判斷乙個物件是否是迭代器(iterator). 可以使用isinstance,需要匯入模組from collections import iterator
3.判斷 for 迴圈是不是迭代器
isinstance((x for x in range(10)), iterator)
print(isinstance((x for x in range(10)), iterator)) # true
注意:迭代器一定是可迭代物件,迭代物件不一定是迭代器。
Python迭代物件和迭代器
str list tuple dic set range 檔案控制代碼等,那麼int,bool這些為什麼不能稱為可迭代物件呢?雖然在字面意思這些看著不符合,但是我們要有一定的判斷標準或者規則去判斷該物件是不是可迭代物件。在python中,但凡內部含有 iter 方法的物件,都是可迭代物件 該物件內部...
python迭代 可迭代物件與迭代器物件
問題舉例 某軟體要求,從網路抓取各個城市的氣溫資訊,並依次顯示 北京 15 22 上海 18 23 如果一次抓取所有城市氣溫資訊再顯示,顯示第乙個城市的氣溫時會由很長的延時,並且浪費儲存空間,我們期望以 用時訪問 的策略,並且把所有城市的氣溫資訊封裝 到乙個物件裡,可用for語句進行迭代。來個栗子 ...
Python的可迭代物件和迭代器物件
迭代器指的是迭代取值的工具,迭代是指乙個重複的過程,每一次重複都是基於上一次結果而來,迭代提供了一種通用的不依賴索引的迭代取值方式 但凡內建有 iter 方法的物件,都稱為可迭代物件,可迭代的物件 str,list,tuple,dict,set,檔案物件 1.既內建又 next 方法的物件,執行該方...