Python中的可迭代物件和迭代器

2021-08-29 23:15:41 字數 1258 閱讀 5678

#isinstance() 函式來判斷乙個物件是否是乙個已知的型別

#1.iterable(可迭代的,用來判斷是否是可迭代的物件)

#2.iterator(迭代器,用來判斷是否是迭代器)

#可迭代的物件:

#可以直接使用for迴圈遍歷的物件,成為可迭代的物件,

#常見的可迭代的物件有:list、tuple、dict、set、str以及生成器。

#更加專業的判斷乙個物件是否是可迭代的物件是:這個物件有乙個__iter__方法,

#並且這個方法會返回乙個迭代器物件,這種物件就叫做可迭代的物件。

from collections import iterable,iterator

a = [1,2,3,4]

# print(isinstance(a,iterable))

# class myrange(object):

# def __next__(self):

# pass

# def __iter__(self):

# pass

# a = myrange()

# print(isinstance(a,iterator)) #用於判斷a是否是迭代器物件

class myrangeiterator(object):

def __init__(self,start,end):

self.index = start

self.end = end

def __iter__(self):

return self

def __next__(self):

if self.index < self.end:

temp = self.index

self.index += 1

return temp

else:

raise stopiteration()

class myrange(object):

"""myrange()是可迭代物件"""

def __init__(self,start,end):

self.start = start

self.end = end

def __iter__(self):

return myrangeiterator(self.start,self.end)

a = myrange(1,10)

for x in a:

print(x)

Python高階專題 可迭代物件協議以及迭代器

1.迭代協議與可迭代物件 只有實現了迭代協議 iter 才可以稱為可迭代物件 2.迭代器 訪問集合內元素的方式,用於遍歷資料,但是無法返回,提供了惰性訪問資料,同時實現了 iter 以及 next 協議 from collections.abc import iterable,iterator it...

python中 可迭代物件

迭代是訪問集合元素的 種 式。迭代器是 個可以記住遍歷的位置的物件。迭代器物件從集合的第 個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。我們已經知道可以對list tuple str等型別的資料使 for in 的迴圈語法從 其中依次拿到資料進 使 我們把這樣的過程稱為遍歷,也...

python迭代和如何判斷乙個物件是可迭代物件

可以理解為,任意的集合使用for迴圈遍歷 python中,迭代永遠是取出元素本身,而非元素的索引。對於有序集合,有時候會需要取出元素的索引,可以使用python內建的enumerate函式。enumerate函式可以把乙個list變成索引 元素對,這樣就可以在for迴圈中同時迭代索引和元素本身。li...