Python程式設計 iterator迭代器

2021-08-14 06:24:27 字數 1875 閱讀 3386

可以直接作用於for迴圈的物件

1、集合資料型別:list,tuple,dict,set,str

2、generator:包括生成器和帶yield的生成器函式

可以被next()函式呼叫,並不斷返回下乙個值的物件

表示乙個資料流,甚至是無窮大的資料流,如全體自然數

惰性計算

from collections import iterable

from collections import iterator

# 可迭代物件

print(isinstance([1,2,3],iterable)) # true

print(isinstance((1,2,3),iterable)) # true

print(isinstance(,iterable)) # true

print(isinstance(,iterable)) # true

print(isinstance("abc",iterable)) # true

print(isinstance((x for x in range(10)),iterable)) # true

print(isinstance(100,iterable)) # false

# 迭代器

print(isinstance((1,2,3),iterator)) # false

print(isinstance(,iterator)) # false

print(isinstance(,iterator)) # false

print(isinstance("abc",iterator)) # false

print(isinstance((x for x in range(10)),iterator)) # true

print(isinstance(100,iterator)) # false

# 可迭代物件 --> 迭代器

print(isinstance(iter([1,2,3]),iterable)) # true

print(isinstance(iter((1,2,3)),iterator)) # true

print(isinstance(iter(),iterator)) # true

print(isinstance(iter(),iterator)) # true

print(isinstance(iter("abc"),iterator)) # true

# 例如

lst = [1, 2, 3, 4, 5, 6]

it = iter(lst) # 轉為iterator

while

true:

try:

print(next(it)) # 通過next方法逐個呼叫

except stopiteration as e:

break

"""out:12

3456

"""

Python高階主題教程1 Iterators

iterators是可以向上迭代的物件。在這篇部落格中,我們會學習到iterator如何工作,以及如何使用 iter 和 next 方法 即class中的函式 定義你自己的iterator。iterators在python隨處可見,for迴圈,comprehensions,generator等等都是...

Behavioral模式之Iterator模式

提供一種方法順序訪問乙個集合物件中各個元素,而不需要暴露該物件的內部表示。cursor 游標 乙個聚合物件,如列表 list 應該提供一種方法來讓別人可以訪問它的元素,而又不需要暴露它的內部結構。資料庫中最常用的iterator模式。以下情況使用iterator模式 顧名思義,迭代器模式就是順序訪問...

Java設計模式 迭代器模式(Iterator)

迭代器角色 iterator 迭代器角色 iterator 迭代器角色負責定義訪問和遍歷元素的介面。author yanbin public inte ce iterator 具體迭代器角色 concreteiterator 具體迭代器角色 concrete iterator 具體迭代器角色要實現迭...