菜雞眼中的叠代器
阿新 • • 發佈:2019-04-05
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)
菜雞眼中的叠代器