1. 程式人生 > 實用技巧 >複習生成器與迭代器

複習生成器與迭代器

回顧:

  凡是可作用於for迴圈的物件都是Iterable型別;

  凡是可作用於next()函式的物件都是Iterator型別,他們表示一個惰性計算的序列;

  集合資料型別,如:list、dict、str等都是Iterable但不是Iterator,不過可以通過iter()函式獲得一個Iterator物件。

 1 from collections import Iterable
 2 from collections import Iterator
 3 
 4 print(isinstance([], Iterable))  # true
 5 print(isinstance({}, Iterable))  #
true 6 print(isinstance((x for x in range(6)), Iterable)) # true 7 print(isinstance('abc', Iterable)) # true 8 print(isinstance(66, Iterator)) # false 9 10 print('----分割線----') 11 12 print(isinstance([], Iterator)) # false 13 print(isinstance({}, Iterator)) # false 14 print(isinstance((x for
x in range(6)), Iterator)) # true 15 print(isinstance('abc', Iterator)) # false 16 print(isinstance(66, Iterator)) # false 17 18 print('--分割線--') 19 20 print(isinstance(iter('abc'), Iterator)) # true 21 print(isinstance(iter([]), Iterator)) # true