迭代器与生成器
迭代器 1,可迭代对象 在Python中,含有iter方法的对象,都是可迭代对象 str ,list,dict,set,tuple都是可迭代对象 判断方法:print(dir(数据类型)),查看源码 优点:,使用灵活,可以直观的查看里面的数据 缺点:占用内存 2,迭代器 可迭代对象执行obj.__iter__()得到的结果就是迭代器 而迭代器对象指的是即内置有__iter__又内置有__next__方法的对象 在Python中,内部含有iter方法并且含有next方法的对象就是迭代器 迭代器:在可迭代对象中,只有文件句柄是迭代器 可迭代对象转换为迭代器 str list ... ### .__iter__() 就是迭代器 dict set s = [1,2,3,4,5,6.] count = len(s) new_s = s.__iter__() while count: print(new_s.__next__()) count -= 1 for i in 的方式 s = [1,3,4,5,6,2,7] new_s = s.__iter__() while True: try: pirnt(new_s.__next__()) except StopIteration: break 优点:节省内存,惰性机制 缺点:不能直观的看到里面的数据, 递归 不断调用自己本身 有明确的终止条件