1. 程式人生 > >菜雞眼中的叠代器

菜雞眼中的叠代器

pre def col 數據結構 自定義 觸發 實例 過程 數據

‘‘‘
叠代器
‘‘‘
#叠代:依次從數據結構取值
‘‘‘
for循環的叠代過程:
for 叠代對象 in 可叠代對象.
‘‘‘
#使用for循環叠代
li = [1,2,3,4,5,6,7,8]
for i in li:
    print(i)

#使用while循環叠代
li = [1,2,3,4,5,6,7,8]
index = 0
while index < len(li):
    print(li[index])
    index +=1

#生成叠代器的方法:
‘‘‘
1:iterator = iter(li) 使用iter方法
2:iterator = li._iter_() 使用_iter_魔法方法

‘‘‘ a = iter([1,2,3,4,5,6])#使用iter方法或者 a = li.__iter__() #使用魔法方法 # print(a) #<list_iterator object at 0x0000022C596F3320>列表的叠代器對象 # for i in a: # print(i) #叠代器和可叠代對象有何區別?叠代器中有next方法,而可叠代對象中沒有next方法,具體用dir方法查詢即可。 print(next(a)) #或者print(a.__next__())。 print(next(a)) #--------------自定義叠代器---重寫iter方法即可-----------------------------------
class Mylist: def __iter__(self): return iter([1,2,3,4,5,6]) #返回的必須是一個叠代器 a = Mylist() #實例化時已經是可叠代對象 for i in a: #叠代實例對象時,觸發魔法方法 print(i)

菜雞眼中的叠代器