Python筆記 迭代器的使用

2021-10-17 15:55:27 字數 1102 閱讀 9485

from collections.abc import iterable

class

demo

(object):

def__init__

(self,x)

: self.x = x

self.count =

0def

__iter__

(self)

:# 只要重寫了 __iter__ 方法就是乙個可迭代物件

# f = foo()

return self

def__next__

(self)

:# 每次 for...in 都會呼叫 __next__方法,獲取返回值

self.count +=

1if self.count <= self.x:

return self.count -

1else

:raise stopiteration # 讓迭代器停止

d = demo(

100)

i = d.__iter__(

)i.__next__(

)i =

iter

(d)# 內建函式 iter 可以獲取到乙個可迭代物件的迭代器

print

(next

(i))

print

(next

(i))

print

(next

(i))

print

(d.__iter__(

).__next__())

# print(d.__iter__().__next__())

# print(d.__iter__().__next__())

# print(d.__iter__().__next__())

# print(d.__iter__().__next__())

# print(d.__iter__().__next__())

結果

123

4process finished with exit code 0

python 迭代器 筆記

1.凡事可用於for迴圈的物件都是iterable型別物件 2.凡事可做用於next 函式的物件都是iterator型別物件,他們表示乙個惰性計算的序列 3.集合資料型別list dicr str等是iterable物件不是iterator物件,但是可以通過呼叫iter 函式獲得乙個iterator...

Python筆記 迭代器

我們已經知道,可以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function。這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable。1 可以...

python迭代器筆記

迭代器的優點 迭代器訪問與for迴圈訪問非常相似,但是也有不同之處。對於支援隨機訪問的資料結構如元組和列表,迭代器並無優勢。因為迭代器在訪問的時候會丟失資料索引值,但是如果遇到無法隨機訪問的資料結構如集合時,迭代器是唯一訪問元素的方式 迭代器僅僅在訪問到某個元素時才使用該元素。在這之前,元素可以不存...