菜鸡眼中的迭代器
''' 迭代器 ''' #迭代:依次从数据结构取值 ''' 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)