三分钟内了解Python生成器
1、生成器是Python初学者最难理解的概念之一。尽管它被认为是Python编程中的高级技能,但在各种项目中随处可见。你必须理解它,使用它,甚至爱上它。当涉及到生成器时,不可避免地要退出迭代器。相反,生成器是行为与迭代器非常相似的对象。如果我们把IOS和IOS进行比较,那么生成器就是Android系统。它们有相似的功能,但生成器更优雅。
2、什么是迭代器顾名思义,迭代器是用于迭代操作(for loops)的对象。像列表一样,它可以迭代以获取其中的每个元素。任何实现方法(python2是next)都可以称为迭代器。它与list的区别在于,在构建迭代器时,与一次将所有元素加载到内存中的列表不同,它以延迟求值的方式返回元素,这是它的优势。例如,列表中包含1000万个整数,占用了400多万内存,而迭代器只需要几十个字节的空间。因为它不会将所有元素加载到内存中,所以在调用下一个方法之前不会返回它。以Fibonacci序列为例实现迭代器
3、相关推荐:Python视频教程发电机是什么一旦了解迭代器,就可以正式进入生成器的主题。普通函数使用return返回值,这与Java等其他语言相同。但是,Python中还有另一个函数,它使用关键字yield这个函数称为生成器函数。当一个函数被调用时,它将返回一个生成器对象。生成器也是一个迭代器,用于迭代操作。因此,它具有与迭代器相同的特性。唯一的区别是实现方法不同,后者更简洁。最简单的生成函数:
4、Func是一个生成函数。当调用这个函数时,返回的对象是generator g。这个generator对象的行为与iterator非常相似,可以在for循环等场景中使用。请注意,与yield对应的值不会在调用函数时立即返回,而只在调用下一个方法时返回(实际上,for循环也会调用下一个方法)
5、为什么要用发电机?显然,在强迫格中,生成器比迭代器高出几级。它没有太多冗长的代码,而且在性能上也同样高效。为什么不?让我们看看用生成器实现Fibonacci序列有多容易。