迭代器和生成器
迭代器 查看是否可迭代 from collections import Iterable from collections import Iterator print(isinstance('abc',Iterable)) #True print(isinstance('abc'.__iter__(),Iterator) ) #True s = "abcdefg" c = s.__iter__() # 获取迭代器 print(c.__next__()) #获取一个元素 a print(c.__next__()) #b 使用while循环和迭代器来模拟for循环 lst = [1,2,3] it = lst.__iter__() while 1: try: i = it.__next__() print(i) except StopIteration: break 迭代器特点: 1.节省内存 2.惰性机制 3.不能反复,只能向下执行 生成器 获取生成器的三种方法: 1.通过生成器函数 2.通过各种推导式来实现生成器 3.通过数据的转换也可以获取生成器 def func(): print('aaa') yield 'bbb' gener = func() #获取到生成器 print(gener) #===> <generator object func at 0x10567ff68>