越学越上瘾   12.12 来百知学IT   课程全面升级

立刻报名学习

400-616-5551

您所在位置: 首页> 学习资讯> python培训 | python常见面试题

python培训 | python常见面试题

发布百知教育 来源:学习资讯 2019-08-20

1.大数据的文件读取:


  ① 利用生成器generator;


  ②迭代器进行迭代遍历:for line in file;


2.迭代器和生成器的区别:



答:(1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身。对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数,iter()是python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内元素,next()也是python的内置函数。在没有后续元素时,next()会抛出一个StopIteration异常


(2)生成器(Generator)是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,只是在需要返回数据的时候使用yield语句。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)


区别:生成器能做到迭代器能做的所有事,而且因为自动创建了__iter__()和next()方法,生成器显得特别简洁,而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序状态的自动方法,当发生器终结时,还会自动抛出StopIteration异常


注释:本文来源于CSDN博主「大蛇王」

上一篇:Python是编程语言里最好的语言吗?

下一篇:大数据培训入门:什么是Spark?为什么要学Spark?

相关推荐