迭代器是乙個可以記住遍歷的位置的物件。
迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。
iter() 函式用來生成迭代器,它主要對映到了類裡面的__iter__函式,此函式返回的是乙個實現了__next__的物件。
可迭代物件(iterable)並不是指某種具體的資料型別,它是指儲存了元素的乙個容器物件,且容器中的元素可以通過__iter__( )方法或__getitem__( )方法訪問。
迭代器(當然也是iterable),同時實現了__iter__和__next__的物件,缺少任何乙個都不算是iterator。
from collections.abc import *class
myrange:
def__init__
(self, n):
self.o =n
m =len(n)
self.i =0
self.n =m
def__iter__
(self):
return
self
def__next__
(self):
if self.i ii =self.i
self.i += 1
return
self.o[ii]
else
:
raise
stopiteration()
x = myrange("
dong_ch_eng")
#如果物件的型別與引數二的型別相同則返回 true,否則返回 false。
(isinstance(x, iterable))
(isinstance(x, iterator))
print(isinstance("
dong_ch_eng
", iterable))
print(isinstance("
dong_ch_eng
", iterator))
print("
x.next():
", x.__next__
())for i in
x:
print(i)
Python知識要點
python 是乙個高層次的結合了解釋性 編譯性 互動性和物件導向的指令碼語言。python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。官方對 python 的介紹如下 python 是一款易於學習且功能強大的程式語言。它具有高...
python 迭代器 python迭代器
迭代器 可以直接作用for迴圈的資料型別 我們已經知道,可以直接作用for迴圈的資料型別有以下幾種 一類是集合資料型別 如 list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function 可迭代物件定義 這些可以直接作用fo...
python的迭代器 Python 迭代器
迭代器 迭代是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。可迭代物件 以直接作用於 for 迴圈的資料型別有以下幾種 一類是集合資料型別,如 list tuple dict set str 等...