迭代器,生成器,枚举
一、迭代器 1、通过迭代器取值的优缺点 优点:不依赖索引取值,完成取值 缺点:不能计算长度,不能指定位取值(只能从前往后逐一取值) 2、可迭代对象 可迭代对象是有—iter—()方法的对象,调用该方法返回迭代器对象 可迭代对象有:str | list | tuple | dict | set | range()| file | 迭代器对象 | enumrate()| 生成器 3、迭代器对象: 迭代器对象:有—next—()方法的对象,也就是用该方法一次从迭代器对象中获取一个值,取出一个少一个 迭代器对象有:file | enumerate()| 生成器 重点: 1、从迭代器对象中取元素,取一个少一个,如果啊哟从头开始取,需要重新获得拥有所有元素的迭代器对象 2、迭代器对象也有—iter—()方法,调用后得到的是自己本身(当前含义几个元素,得到的就只有几个元素的迭代器对象) 4、for循环迭代优点 自动获取被迭代对象的迭代器对象 在内部一次一次调用—next—()方法取值 自动完成异常处理 二、生成器 1、生成器:包含yied关键字的函数就是生成器 def my_generator(): yield 1 yield 2 yield 3 g_obj = my_generator() my_generator()并不会执行函数体,得到的返回值就是生成器对象 生成器对象就是迭代器对象 r1