3个“黑魔法”与“骚操作”
|
止,列表推导式不就是一个用来创建列表的式子么?除了可以简化代码,装装X?其实,列表推导式还有另一个优点是相比于for循环更高效,因为列表推导式在执行时调用的是Python的底层C代码,而for循环则是用Python代码来执行。嗷~面试官最想听到的,是第二点。 迭代器 由于迭代器协议对很多人来说,是一个较为抽象的概念,而且生成器自动实现了迭代器协议,所以我们需要先讲解一下迭代器协议的概念,也是为了更好的理解接下来的生成器。 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。 迭代是访问集合元素的一种方式,迭代器是一个可以记住遍历位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有元素被访问完结束。 迭代器只能往前不能后退。 迭代器协议:是指对象需要提供__next__()方法,它要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代。 可迭代对象:就是实现了迭代器协议的对象。
举个例子,对Python稍微熟悉一点的朋友应该知道,Python的for循环不但可以用来遍历list,还可以用来遍历文件对象,如下所示: (编辑:桂林站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |



