迭代器和生成器的区别是什么?这个问题面试的时候经常作为灵魂拷问.今天一起从概念到代码梳理一遍,作为总结和记录. 区别是: 生成器的好处是延迟计算,一次返回一个结果.也就是说,它不会一次生成所有的结果,这对于大数据量处理,将会非常有用. 基础概念 迭代:当创建的对象可以被一个接一个读取里面的值,叫迭代. 列表.元组.字典.字符串都是可迭代对象.数字.布尔值是不可迭代的对象. 迭代器协议:对象需要提供next()方法,通过它返回迭代中的下一项,直到返回终止抛出StopIteration异常. 可迭代…