老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

Python中生成器是怎样的?Python培训

老男孩IT教育

行业新闻

2021年8月4日 16:51

在Python这门编程语言中,生成器毫无疑问是最有用的特性之一,但同时,生成器也是Python使用中最不广泛的特性之一了,为什么这么有用但使用的人却不多呢?原因在于生成器这个概念在其他编程语言中相对较少,也就是对于大多数人来说是一个较新的东西,所以没有引起广大程序员所重视,另一方面,也增加了程序员们的学习成本,具体请看下文:

       在Python这门编程语言中,生成器毫无疑问是最有用的特性之一,但同时,生成器也是Python使用中最不广泛的特性之一了,为什么这么有用但使用的人却不多呢?原因在于生成器这个概念在其他编程语言中相对较少,也就是对于大多数人来说是一个较新的东西,所以没有引起广大程序员所重视,另一方面,也增加了程序员们的学习成本,具体请看下文:

Python学习

       什么是生成器?

       这个概念相对来说比较模糊,每个人都有各自不同的理解,但主体大部分都是一致的,本质就是迭代器,但很多时候会把迭代器和生成器当做同一种概念,其实两者也有不同之处,唯一的不同是,迭代器是Python给开发者提供已经写好的工具或者通过数据转化得来的,生成器是需要开发者自己用Python代码构建的工具,这也就是最大的区别了。

       在Python中有三种方式可以创建生成器,那如何创建呢?

       1、通过生成器函数

       2、通过生成器推导式

       3、Python内置函数或者模块提供,其实1和3两种本质上差不多,都是通过函数的形式生成,只不过1是自己写的生成器函数,3是用Python提供的生成器函数而已。

       生成器的好处是可以一边循环一边进行计算,不用一下就生成一个很大的集合,生成器可以节省内存空间。

       生成器保存的是算法,而列表保存的是计算后的内容,所以同样内容的话,生成器占用内存小,而列表占用内存大。

       在Python中,使用yield的函数都可以被称作是生成器,也就是generator,生成器是一个返回迭代器的函数,只能用于迭代操作,说简单点,就是可以理解为生成器=迭代器。

       关于“Python中生成器是怎样的”介绍到这里就结束了,生成器是Python开发中一个很容易被忽略的重要特性,在实际工作中,我们可以充分利用Python生成器,不仅能够减少内存使用,还能够提高代码可读性,老男孩教育采用线上、线下相结合的方式,科学的教学方法,无论学员选择哪一种授课方式,都能学到真知识!

       推荐阅读:

       Python学习中需要使用哪些框架?Python入门

       R与Python区别在哪?该如何选择?Python学习教程

       Python2和Python3究竟有哪些区别?老男孩Python基础教程

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。