3年Python程序员平时学习笔记总结,对于学习Python非常有帮助!
一、可迭代对象、迭代器对象和生成器 像list, tuple等这些序列是可以使用for...in ...语句来进行遍历输出的。这是为什么呢?这就需要知道可迭代对象(Iterable)、迭代器对象(Iterator)和生成器对象(Generator)了。 1.什么可迭代对象? 把可以通过for...in...这类语句迭代读取一条数据供我们使用的对象。 2. 可迭代对象的本质? 可迭代对象通过__iter__方法向我们提供一个迭代器,我们在迭代一个可迭代对象的时候,实际上就是先获取该对象提供的一个迭代器,然后通过这个迭代器来依次获取对象中的每一个数据。 也就是说可迭代对象必须要有__iter__()方法 3.iter()函数与next()函数的作用是什么? 通过iter()函数获取可迭代对象的迭代器。 然后我们可以对获取到的迭代器不断使用next()函数来获取下一条数据。当我们已经迭代完最后一个数据之后,再次调用next()函数会抛出StopIteration异常, 来告诉我们所有数据都已迭代完成,不用再执行next()函数了。 4.什么是迭代器对象? 一个实现了__iter__方法和__next__方法的对象,就是迭代器。 5. 什么是生成器? 简单来说:只要在def中有yield关键字的 就称为生成器 6.yield的作用是什么? yield关键字有两点作用: (1)