Python中生成器是怎样的?Python培训
老男孩IT教育
行业新闻
2021年8月4日 16:51
在Python这门编程语言中,生成器毫无疑问是最有用的特性之一,但同时,生成器也是Python使用中最不广泛的特性之一了,为什么这么有用但使用的人却不多呢?原因在于生成器这个概念在其他编程语言中相对较少,也就是对于大多数人来说是一个较新的东西,所以没有引起广大程序员所重视,另一方面,也增加了程序员们的学习成本,具体请看下文:
在Python这门编程语言中,生成器毫无疑问是最有用的特性之一,但同时,生成器也是Python使用中最不广泛的特性之一了,为什么这么有用但使用的人却不多呢?原因在于生成器这个概念在其他编程语言中相对较少,也就是对于大多数人来说是一个较新的东西,所以没有引起广大程序员所重视,另一方面,也增加了程序员们的学习成本,具体请看下文:
什么是生成器?
这个概念相对来说比较模糊,每个人都有各自不同的理解,但主体大部分都是一致的,本质就是迭代器,但很多时候会把迭代器和生成器当做同一种概念,其实两者也有不同之处,唯一的不同是,迭代器是Python给开发者提供已经写好的工具或者通过数据转化得来的,生成器是需要开发者自己用Python代码构建的工具,这也就是最大的区别了。
在Python中有三种方式可以创建生成器,那如何创建呢?
1、通过生成器函数
2、通过生成器推导式
3、Python内置函数或者模块提供,其实1和3两种本质上差不多,都是通过函数的形式生成,只不过1是自己写的生成器函数,3是用Python提供的生成器函数而已。
生成器的好处是可以一边循环一边进行计算,不用一下就生成一个很大的集合,生成器可以节省内存空间。
生成器保存的是算法,而列表保存的是计算后的内容,所以同样内容的话,生成器占用内存小,而列表占用内存大。
在Python中,使用yield的函数都可以被称作是生成器,也就是generator,生成器是一个返回迭代器的函数,只能用于迭代操作,说简单点,就是可以理解为生成器=迭代器。
关于“Python中生成器是怎样的”介绍到这里就结束了,生成器是Python开发中一个很容易被忽略的重要特性,在实际工作中,我们可以充分利用Python生成器,不仅能够减少内存使用,还能够提高代码可读性,老男孩教育采用线上、线下相结合的方式,科学的教学方法,无论学员选择哪一种授课方式,都能学到真知识!
推荐阅读:
